jQuery-.on('click'..)在处理动态创建的元素时,不处理现有元素

jQuery - .on('click' ... ) does not work on already existing elements while working on dynamically created ones

本文关键字:元素 处理 on 创建 click jQuery- 动态      更新时间:2023-09-26

javascript:

$('body').on('click', '.deleteButton > a', function() {
    alert('pop');
    return false;
});

html:

<div class="deleteButton">
    <a href="#">✖</a>
</div>

这种类型的click事件绑定在新创建的元素上运行良好(通过.clone和.prepend),但在现有元素上不起作用。

但是使用.click()代替.on()是在处理已经存在的元素,而不是在处理新创建的元素。

有没有任何方法可以将新元素和现有元素上的点击事件绑定到一行?

好吧,你可以看看小提琴JsFiddle

$('body').on('click', '.deleteButton > a', function () {});

您需要做的是将事件附加到主体,而不是类或id。这样做会将事件绑定到主体,作为回报,所有主体元素都会自动绑定到此事件。

您的代码运行良好。但是你仍然可以试试这个。它也起了作用。

$('.deleteButton > a').on('click', function () {
alert('pop');
return false;
});

使用

            $(document).ready(function(){
            $('body').on('click', '.deleteButton > a', function() {
                alert('pop');
                return false;
            });
            });

希望这对你有帮助。

检查此jsFiddle