-1

我有两个按钮类,单击时,我希望发生一些事情。

我有:

$('.btn-comment, .btn-youtube').click(function(){

这曾经在按钮是静态的时候起作用。它们现在是临时创建的。

我试过这个:

$('.btn-comment, .btn-youtube').on('click', function(){

但没有运气。

4

3 回答 3

1

这不是它的工作原理。您应该将委托添加到父元素。将遭受修改的人。

您可以对整个文档执行此操作:

$(document).on('click', '.btn-comment, .btn-youtube', function(){ ... });

但最好用修改后的元素来做。

于 2013-09-23T11:45:52.173 回答
1

您需要在一个共同的静态祖先上注册处理程序(最坏的情况document,但越近越好),然后.on为委托处理程序使用新语法,例如:

$(document).on('click', '.btn-comment, .btn-youtube', function() { 
     ...
});
于 2013-09-23T11:46:12.647 回答
0

查看.on()的 jQuery 文档。你需要使用:

$('body').on('click', '.btn-comment, .btn-youtube', function(){ ... });

您的代码的问题是,如果.btn-comment, .btn-youtube是动态插入的,那么它们可能在您尝试附加事件处理程序时不存在。上面的代码行将处理程序附加到body但仅由匹配第二个参数 ( '.btn-comment, .btn-youtube') 的元素触发。

理想情况下,您将替换'body'为插入新元素的最近的祖先。

于 2013-09-23T11:46:41.570 回答