我使用自定义功能:
function youtubeload() {
$(".youtube").each(function() {
$(document).on('click', '#' + this.id, function() {
...
});
});
};
我这样称呼这个函数:
$(document).ready(function() {youtubeload();});
在colorbox ajax popup之后我再次调用该函数,因此可以在新加载的元素上使用它,如下所示:
//cbox_complete is colorobox event hook
$(document).bind('cbox_complete', function(){
youtubeload();
});
现在,关闭模态窗口后,我有一个问题,重复触发器(单击后,该函数被触发两次。)我试图解除单击事件,如下所示:
//cbox_closed is colorbox event hook
$(document).bind('cbox_closed', function() {
$(document).unbind('click');
});
但它不起作用。如何取消绑定事件,因此没有重复的触发器?谢谢。
答案 0 :(得分:0)
$(document).unbind('click')
将取消绑定所有元素上的所有点击事件。您只需解除触发事件的元素的绑定。使用$(this)
来定位该元素。这将解决unbind问题。
$(document).bind('cbox_closed', function() {
$(this).unbind('click');
});
但是有了这个,你需要再次将click事件绑定到该元素。
要避免所有的hassels,只需使用.on
事件将click处理程序委托给动态创建的元素。
$(document).on("click",'cbox_complete', function(){
youtubeload();
});