.on().off()之后的jQuery事件

时间:2013-07-03 00:46:40

标签: jquery

我有一个.on('click','td', function(){})事件。 我转过它.off('click','td')。我现在想再次.on()同一事件。 我尝试了.on()的一些组合,但它没有用。可以通过将其分配给变量来完成,但不知道如何做到这一点。

2 个答案:

答案 0 :(得分:6)

将事件处理函数放在变量中,并像这样使用它:

var handler = function(e){
    //code here
}

//on
$('#myselector').on('click', handler);

//off
//Try this, this will only turn 'handler' off
$('#myselector').off('click', handler);

//If the above doesn't work, then try this
//This will turn off all your other click handlers for the same element,
//if for some reason turning off a particular handler doesn't work!
$('#myselector').off('click');

//on again
$('#myselector').on('click', handler);

答案 1 :(得分:4)

我假设单击TD试试这个: 首先让你的td上课,告诉它是打开还是关闭。默认情况下,TD将具有td-off类,如此

<td class="td-off">

然后设置一个改变班级的事件。

.on('click','td',function(){

  if($(this).hasClass('td-off')){
    $(this).removeClass('td-off');
    $(this).addClass('td-on');
  }else{
    $(this).removeClass('td-on');
    $(this).addClass('td-off');
  }

});

然后最终设置您开启或关闭的事件

$('.td-on').click(function(){
    //Your event on
});

$('.td-off').click(function(){
   //Your event off
});

这可能不是最佳答案,但我希望你能得到这个想法