我有 2 行 jquery。第一行是在“myLink”上添加事件,第二行是在“#another”上添加类“myLink”,但事件在第二行中不起作用,但是当我使用 .live 方法时,它正在工作。 jquery 在其 1.7 版本中引入了 .on 方法。我想通过 .in 函数做到这一点是否可行。
$(function(){
$("a.myLink").on('click', function() { alert( 'Click!' ); } );
$("a#another").addClass( "myLink" );
})
<a class="myLink">A link!</a>
<a id="another">Another link!</a>
最佳答案
我刚刚写了一篇关于使用 .on()
替换 .live()
的入门文章,并解释了 .on()
的静态形式code> (您正在使用)和 .on()
的动态形式(您需要使用)。今天早些时候的入门读物在这里:Does jQuery.on() work for elements that are added after the event handler is created?其中包含更多详细信息。
你需要使用这样的东西:
$(document).on('click', "a.myLink" function() { alert( 'Click!' ); } );
或者,甚至更好地使用动态链接的静态祖先而不是 document
(我在这里假设它是一个对象 #container
因为这会提供更好的性能,例如这个:
$("#container").on('click', "a.myLink" function() { alert( 'Click!' ); } );
关于jquery.on 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816824/