我有一个按钮,当你点击这个按钮时,它动态地创建第二个按钮。我需要将点击事件放置到动态创建的按钮(第二个按钮)上,但我的点击功能不起作用。如何将动作添加到在jquery中动态创建的元素中?
如何让我的点击功能与动态创建的元素一起工作?
我有一个按钮,当你点击这个按钮时,它动态地创建第二个按钮。我需要将点击事件放置到动态创建的按钮(第二个按钮)上,但我的点击功能不起作用。如何将动作添加到在jquery中动态创建的元素中?
如何让我的点击功能与动态创建的元素一起工作?
太棒了,就是我一直在寻找的! –
您需要在点击事件创建后将其绑定到第二个按钮。或者使用jQuery Live或Delegate功能。
http://api.jquery.com/delegate/
附加一个处理程序,以一个或多个事件的 选择,现在还是将来相匹配的所有元素的基础上,一组特定的根 元素。
发布一些代码,如果你需要任何更多的帮助。
退房的jQuery .live()
标记:
<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);
});
需要使用jqueries活法附加的事件。它将把事件绑定到当前和未来元素的所有实例。
$('.classname').live('click', function() {
alert("triggered");
});
这样的单击事件被添加到与类名的类名的所有元素 - 即使你插入相同类别更多的元素。
<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>
我知道这个问题被问得很久以前...
因为jQuery的V1.7正确的方式做到这一点是:
$(document).on("click",'.myNewlyCreatedElement', function() {
// Your action
});
你要告诉我们你是如何做到这一点的? –
请显示您的代码和错误消息或不工作的具体描述。 –