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