off()正在删除click事件句柄。
on()应该重新绑定效果,但不起作用
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('p').on('click', function(){
$(this).css('color', 'blue');
});
$('#btn_off').click(function(){
$('p').off('click');
});
$('#btn_on').click(function(){
$('p').on('click');
});
});
</script>
<span>Click the paragraph:</span>
<p>Prg #1</p>
<p>Prg #2</p>
<p>Prg #3</p>
<p>Prg #4</p>
<button id="btn_off">bind off prg.</button>
<button id="btn_on">bind on prg.</button>
在标题中查看我的问题。
答案 0 :(得分:3)
绑定事件时,您没有传递点击处理程序。
使用
$(document).ready(function(){
//Declare click handler
var pClickHandler = function(){
$(this).css('color', 'blue');
}
//Bind click handler on document ready
$('p').on('click', pClickHandler);
$('#btn_on').click(function(){
//Bind click handler on on click
$('p').on('click', pClickHandler);
});
});
答案 1 :(得分:1)
$(function() { // DOM Ready shorthand
function changeColor() {
$(this).css('color', 'blue');
}
$('#btn_off').click(function() {
$('p').off('click', changeColor); // Turn OFF
});
$('#btn_on').click(function() {
$('p').on('click', changeColor); // Turn ON
}).trigger("click"); // Activate. Same as doing:
// $('p').on('click', changeColor);
});