繁体   English   中英

如何向 jquery 中动态创建的元素添加操作?

[英]How do I add an action to an element that is dynamically created in jquery?

我有一个按钮,当您单击此按钮时,它会动态创建第二个按钮。 我需要在动态创建的按钮(第二个按钮)上放置一个点击事件,但我的点击 function 不起作用。

如何让我的 click function 使用动态创建的元素?

我知道很久以前有人问过这个问题...
由于 jQuery v1.7 正确的方法是:

$(document).on( "click",'.myNewlyCreatedElement', function () {
    // Your action
});

参考: http://api.jquery.com/on/

您需要在创建后将点击事件绑定到第二个按钮。 或使用 jQuery Live 或 Delegate 功能。

http://api.jquery.com/delegate/

根据一组特定的根元素,将处理程序附加到与选择器匹配的所有元素的一个或多个事件,现在或将来

如果您需要更多帮助,请发布一些代码。

你必须使用 jQuery .live() function 可以在这里找到。

例子:

$('button').live('click', function(){
    ...
});

这是一个例子

标记:

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

查看 jQuery.live()

jQeru.live()

您需要使用 jquery live 方法附加一个事件。 它将事件绑定到当前和未来元素的所有实例。

$('.classname').live('click', function() {
  alert("triggered");
});

这样,单击事件将添加到类名为 classname 的所有元素中 - 即使您插入更多具有相同 class 的元素。

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM