我有两个按钮类,点击后,我想要发生一些事情。
我有:
$('.btn-comment, .btn-youtube').click(function(){
当按钮是静态的时,这用来工作。它们现在是临时创建的。
我试过这个:
$('.btn-comment, .btn-youtube').on('click', function(){
但没有运气。
答案 0 :(得分:1)
这不是它的工作原理。 您应该将委托添加到父元素。那个将要遭受修改的人。
您可以使用整个文档:
$(document).on('click', '.btn-comment, .btn-youtube', function(){ ... });
但最好用修改后的元素来做。
答案 1 :(得分:1)
您需要在常见的静态祖先(最差情况document
上注册处理程序,但越接近越好)然后对委派的处理程序使用新的.on
语法,例如:
$(document).on('click', '.btn-comment, .btn-youtube', function() {
...
});
答案 2 :(得分:0)
查看.on()的jQuery文档。 你需要使用:
$('body').on('click', '.btn-comment, .btn-youtube', function(){ ... });
代码的问题在于,如果动态插入.btn-comment, .btn-youtube
,那么在您尝试附加事件处理程序时,它们可能不存在。
上面的代码行将处理程序附加到body
,但仅由匹配第二个参数('.btn-comment, .btn-youtube'
)的元素触发。
理想情况下,您将'body'
替换为插入新元素的最近祖先。