jQuery .live()方法由类选择器和die方法由id选择器

时间:2011-05-27 16:15:17

标签: jquery

我对.live()和.die()方法存在“问题”。 我正在使用jQuery 1.5.1。 这是我的方案

<div id='div1' class='MyClass'>Link 1</div>
<div id='div2' class='MyClass'>Link 2</div>
<div id='div3' class='MyClass'>Link 3</div>

和我的jQuery脚本

$('.MyClass').live('click', function(evt) {
   local.href = 'home.aspx'
});

由于某种原因我想禁用链接2所以我试图这样做

$('#div2').die('click');

但似乎没有问题。 我认为,如果我使用类选择器添加事件,我无法使用id选择器删除相同的事件。 我必须使用.live()方法,因为我不知道我的页面中有多少div。

有人有任何“修复”这个问题的建议吗?

3 个答案:

答案 0 :(得分:3)

您需要做的就是从div2中删除“MyClass”类。然后它将与实时绑定的选择器不匹配。

Here's an example

答案 1 :(得分:0)

要尝试的其他内容:

$('.mySelector').unbind('click');

答案 2 :(得分:0)

一个“修补程序”解决方案就是:

$('.MyClass').live('click', function(evt) {
    if ( $(this).data('disabled') ) { return false; } // return if disabled
    // do your stuff
});

然后,当你想要禁用DIV时,请执行以下操作:

$('#div2').data('disabled', true);

现在,live-handler仍将执行,但会立即返回。

您甚至可以稍后通过将上述数据属性设置为true来重新启用它。