在我的场景中,我必须使用class来添加div,这可以通过onClick函数轻松解决,但我需要这个来完成我的任务, .click(function()不能处理新元素,javascript / jquery可能存储元素onload或者什么???
<div class="add">
<div class="anyRow">Hello<hr/></div>
</div>
$('.anyRow').click(function(){
$('.add').append('<div class="anyRow">Hello</hr></div>')
});
答案 0 :(得分:2)
您必须使用on()
方法作为已弃用的live()
方法,以便为将来的新元素委派点击。
$(document).on("click", ".anyRow", function() {
$('.add').append('<div class="anyRow">Hello</hr></div>');
});
答案 1 :(得分:1)
如果您在实际案例中使用(如在jsFiddle中发布)jQuery v1.6.4,您应该使用.delegate()
方法:
$('.add').delegate('.anyRow', 'click', function () {
$('.add').append('<div class="anyRow">Hello</hr></div>')
});
答案 2 :(得分:1)
对于较旧的jquery版本,如果动态更改html,我可以使用live
函数(我看到你在小提琴中使用了较旧的jquery版本)
$('.add').live( 'click', function () {
$('.add').append('<div class="anyRow">Hello</hr></div>')
});
答案 3 :(得分:0)
下面的方法甚至在元素存在之前将事件处理程序应用于元素
$("#parent-element").on("click", "#new-element", function() {
// your code
});