我有一个按钮,当您单击此按钮时,它会动态创建第二个按钮。我需要在动态创建的按钮(第二个按钮)上放置一个单击事件,我这样做,但我的点击功能不起作用。
如何让我的点击功能与动态创建的元素配合使用?
答案 0 :(得分:3)
我知道很久以前就问过这个问题了...... 从jQuery v1.7开始,正确的方法是:
$(document).on( "click",'.myNewlyCreatedElement', function () {
// Your action
});
答案 1 :(得分:2)
您需要在创建后将click事件绑定到第二个按钮。或者使用jQuery Live或Delegate函数。
http://api.jquery.com/delegate/
为所有匹配的元素附加处理程序到一个或多个事件 选择器,现在或将来,基于一组特定的root 元件。
如果您需要更多帮助,请发布一些代码。
答案 2 :(得分:1)
答案 3 :(得分:1)
标记:
<button id="create">Create</button>
<div id="container">
</div>
脚本:
var count = 0;
$("#create").click(function(e) {
var num = count += 1;
var newButton = $("<button>New " + num + "</button>").click(function() {
alert("Button " + num + " was clicked.");
});
$("#container").append(newButton);
});
答案 4 :(得分:0)
查看jQuery .live()
答案 5 :(得分:0)
您需要使用jqueries live方法附加事件。它会将事件绑定到当前和未来元素的所有实例。
$('.classname').live('click', function() {
alert("triggered");
});
这样,click事件被添加到classname为classname的所有元素 - 即使你插入更多具有相同类的元素。
答案 6 :(得分:0)
<input id="but1" type="button" value="click"></input>
<script>
$(document).ready(function(){
$('#but1').click(function(){
var button = $(document.createElement('input'));
button.attr('id', 'but2');
button.val('but2');
button.attr('type', 'button');
button.click(function(){alert('hello');});
$(document.body).append(button);
});
});
</script>