我被卡住,试图解除绑定并重新绑定单击事件。我想“保存”点击事件,取消绑定,并用条件语句重新绑定它。jQuery,试图保存点击事件,解除绑定和重新绑定,无法重新绑定
我能够获得点击这里处理程序使用的信息保存:jQuery find events handlers registered with an object
我在一个旧版本的jQuery(1.5),所以我使用的数据(“事件”)的方法。
到目前为止...
var events = $('#myElement').data("events");
alert(events.click[0].handler);
$('#myElement').unbind('click');
现在,它会提醒我的处理函数,它看起来是正确的。我想添加东西,但我认为对于初学者我只是尝试重新绑定相同的点击事件。但是,我不确定如何正确重新绑定。我已经尝试过的东西:
$('#myElement').bind('click', null, events.click[0].handler); // gives 'click.0 is null or not an object
$('#myElement').bind('click', events.click[0].handler); // gives 'click.0 is null or not an object
$('#myElement').bind('click', null, events.click); // seems to have no effect
$('#myElement').bind('click', events.click); // seems to have no effect
所以我觉得我几乎有它,但我不知道从这里做什么。如何使用events变量重新绑定click事件?
谢谢你的任何和所有帮助。
我们有,我们在一个单独的.js文件重用了很多的处理函数。它适用于我正在处理的页面中的大量控件,我只需要将条件语句添加到其中的一个,这就是为什么我希望“保存”它,解除绑定并重新绑定它有条件的陈述。现场方法不给我任何错误,但它似乎并没有工作... – Mike 2013-02-26 16:38:42
我试过$('#myElement')。die(); $('#myElement')。live('click',events.click [0] .handler);这是它应该看起来如何?谢谢。 – Mike 2013-02-26 16:39:50
@Mike,我写了一个函数来取回之前绑定的处理程序。请注意,上述代码仅在您使用.live绑定click事件和.die来移除所有事件时才起作用。试试上面的代码。 – Derek 2013-02-26 17:34:31