添加了Div不工作的点击功能

时间:2014-12-06 18:29:54

标签: javascript jquery

在我的场景中,我必须使用class来添加div,这可以通过onClick函数轻松解决,但我需要这个来完成我的任务, .click(function()不能处理新元素,javascript / jquery可能存储元素onload或者什么???

FIDDLE

<div class="add">
  <div class="anyRow">Hello<hr/></div>
</div>



$('.anyRow').click(function(){
$('.add').append('<div class="anyRow">Hello</hr></div>')
});

4 个答案:

答案 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>')
});

-DEMO-

http://learn.jquery.com/events/event-delegation/

答案 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
});