【发布时间】:2014-11-18 14:38:32
【问题描述】:
这是一些 JQuery 插件的代码。
...
return this.each(function(index, el) {
var $this = $(this), data = $this.data('control');
$(el).on('click',el, function(){
alert('hello world!');
});
});
...
我是这样用的:
$('.mybutton').myPlugin();
单击功能通常适用于页面上具有 .mybutton 类的所有元素,但不适用于 ajax 加载的元素。 伙计们,我如何在 JQ 插件中为动态创建的元素绑定点击功能? 非常感谢!
【问题讨论】:
-
如果您进行原始方法调用会有所帮助: $('.mybutton').myPlugin();在每次 ajax 调用之后?
-
你试过
$(document).on( 'click', el, function(){} );而不是$(el).on('click', el, function(){} );吗?在第一种情况下,您将绑定到元素本身,这些元素当时可能存在也可能不存在。在第二种情况下,您将绑定到肯定存在的文档。 -
$(document).on('click', el, function(){}); ← 此代码不起作用,因为 'el' 不是选择器,它的对象。 8-(
-
@jyrkim 这将为现有元素添加多个点击处理程序。
-
也许您可以将我的建议与此处的答案结合起来,以获取插件调用中使用的选择器,并将
el替换为选择器? stackoverflow.com/questions/5477394/…