2012-04-25 83 views
0

例如,我有这样的:jQuery的创造元素,并使用它

<div id="buttons"> 
    <button class="button">Click</button> 
</div> 

<script> 
    $(document).ready(function() { 
     $('.button').click(function() { 
      $('#buttons').append('<button class="button">Click</button>'); 
     }); 
    }); 
</script> 

当我按下“点击”按钮,该脚本将创建一个具有相同类别“按钮”的新按钮。 当我按下这个新按钮 - 没有任何反应。

我明白为什么,但我不知道如何避免这种情况。 我想我的脚本“看到”刚刚创建的按钮。

+2

你[搜索第一(http://stackoverflow.com/questions/10084293/how-to-make-live-click-event-on-new - 新增-DOM/10084329#10084329)? – neoascetic 2012-04-25 00:45:35

+0

是的,我做了搜索,但我没有找到答案。抱歉。 – imkost 2012-09-03 21:11:38

回答

2

使用on绑定到委托事件

$("#buttons").on("click", ".button", function() { 
    $('#buttons').append('<button class="button">Click</button>');  
}); 

例子:http://jsfiddle.net/66H8W/

+0

你是我的救星。非常感谢 – imkost 2012-04-25 00:51:29

+0

@imkost:没问题,乐于帮忙。 – 2012-04-25 00:52:14

1

你好演示http://jsfiddle.net/vcrF3/ **或http://jsfiddle.net/vcrF3/1/

http://api.jquery.com/on/报价

事件-地图的地图,其中所述字符串键表示一个或多个 空格分隔的事件类型和可选的名称空间,并且值 表示要为事件调用的处理函数。

jQuery代码

$.fn.ready(function() { 
     $('div').on("click", ".button", function() { 
      $('#buttons').append('<button class="button">Click</button>'); 
      // alert('append button is clicked'); 
     }); 
    });