在2周前问同样的问题之后 这里,我终于找到了“解决方案”。这就是我回答自己问题的原因。 ;)
如何在JQUERY中绑定,组合和重新绑定事件?
在2周前问同样的问题之后 这里,我终于找到了“解决方案”。这就是我回答自己问题的原因。 ;)
如何在JQUERY中绑定,组合和重新绑定事件?
这是完美的解决方案。 (至少对于我来说。)
$(document).on('click', 'a#button', function(){
$(this).after('<span> hello</span>');
$('span').fadeOut(1000);
});
$('a#toggle').toggle(
function(){
$(this).text('rebind');
$('a#button').on('click.disabled', false);
},
function(){
$(this).text('unbind');
$('a#button').off('click.disabled');
}
);
“.on()”做到了。注意:绑定事件非常重要,就像你在第一行看到的一样!它不适用于.click()或......!
见 文档!
这是一个小提琴 尝试并试验它!
请享用!
一个更简单的解决方案是在对象中添加一个类,如果你想取消绑定它,那么删除这个类来重新绑定ex;
$('#button').click( function(){
if($(this).hasClass('unbinded')) return;
//Do somthing
});
$('#toggle').click(function(){
$('#button').toggleClass('unbinded');
});
此函数扩展jQuery以包含一个附加事件处理程序的运算符,与.on相同。另外,它可以防止给定处理程序的多个实例附加到选择器。
请注意,删除和重新附加事件处理程序会更改它们附加的顺序。
(function ($) {
$.fn.reBind = function(events, handler) {
return this.off(events, handler).on(events, handler);
};
}(jQuery));