You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery动态插入的divSpecialSelected元素选择器绑定事件失效如何解决

解决方案

你的推测完全正确,直接使用$("divSpecialSelected").on()绑定事件仅会作用于页面初始加载完成时就已存在的DOM节点,后续动态插入的元素不会被匹配到,需要使用事件委托机制,将事件绑定到页面初始就存在的父级容器上,再通过选择器匹配目标子元素触发回调。
你当前是将动态元素插入到#blocArray容器内,直接修改绑定代码如下即可生效:

// 父容器选择器.on(事件名, 目标子元素选择器, 回调函数)
$("#blocArray").on('click', 'divSpecialSelected', function () {
    console.log("aaa");
    document.getElementById(this.id).addEventListener('mousedown', mouseDown, false);
    localStorage.setItem('id', this.id);
    window.addEventListener('mouseup', mouseUp, false);
});

优化建议

你当前的写法每次点击元素都会重复绑定mousedown和mouseup事件,多次点击会导致同一事件触发多次回调,建议直接将mousedown也做委托绑定,避免重复绑定问题:

// 委托绑定mousedown事件,无需点击后再绑定
$("#blocArray").on('mousedown', 'divSpecialSelected', function (e) {
    mouseDown.call(this, e);
    localStorage.setItem('id', this.id);
});
// mouseup全局绑定一次即可
window.addEventListener('mouseup', mouseUp, false);

内容的提问来源于stack exchange,提问作者Heimdall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:36:04