首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

On( ) click是针对jquery中最后一个附加的div而不是所有附加的div执行的

on() 方法在 jQuery 中用于绑定事件处理器到选定的元素。当使用 on() 方法时,可以选择绑定到特定的元素或者动态添加的元素。在你提到的情况中,on() 方法可能被用于绑定点击事件到一个动态添加的 div 元素上。

如果你发现 on() 方法只对最后一个附加的 div 执行,而不是所有的 div,这通常是因为事件委托的机制。在 jQuery 中,如果你在一个父元素上使用 on() 方法,并且指定了一个子元素的选择器,那么这个事件处理器会被绑定到父元素上,但是只有当事件是从匹配选择器的子元素触发时,事件处理器才会执行。

例如,如果你有以下代码:

代码语言:txt
复制
$('body').on('click', '.dynamic-div', function() {
    // 事件处理代码
});

这段代码意味着,无论何时点击 body 元素内的任何一个具有 .dynamic-div 类的元素,都会触发事件处理器。如果之后动态添加了多个 div,并且它们都有 .dynamic-div 类,那么点击任何一个这样的 div 都会触发事件处理器。

如果你只想对最后一个附加的 div 执行操作,你需要确保每次添加新的 div 时,都重新绑定事件处理器,或者使用更具体的选择器来确保只有最后一个 div 被选中。例如:

代码语言:txt
复制
function bindLastDivClick() {
    $('.dynamic-div').last().off('click').on('click', function() {
        // 只对最后一个 div 执行的操作
    });
}

// 每次添加新的 div 后调用这个函数
bindLastDivClick();

在这个例子中,每次调用 bindLastDivClick 函数时,都会先解绑之前绑定的点击事件(如果有的话),然后只对最后一个 .dynamic-div 元素绑定新的点击事件处理器。

如果你遇到的问题是因为事件委托没有正确设置,确保你的父元素选择器是正确的,并且子元素的选择器能够匹配到你想要绑定事件的元素。如果问题依旧存在,可能需要检查是否有其他的 JavaScript 代码干扰了事件处理器的正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券