我很想知道,当ajax加载时替换了A元素时,所有被它蒙蔽的事件和数据都会被断开或直接删除?
$(parent), $(document) or $(window)
如果一旦被替换,我不相信任何没有被蒙蔽的事件和数据将保持不变。如果是这样,它们是否只是被断开或删除?
我很想知道,当ajax加载时替换了A元素时,所有被它蒙蔽的事件和数据都会被断开或直接删除?
$(parent), $(document) or $(window)
如果一旦被替换,我不相信任何没有被蒙蔽的事件和数据将保持不变。如果是这样,它们是否只是被断开或删除?
如果一个事件直接绑定到一个元素(不使用委托事件处理),那么当该元素被删除时,它的事件处理程序也将被删除。
类似地,如果任何属性或属性已添加到该 DOM 元素,它们将与该特定 DOM 元素一起使用,因此如果 DOM 元素被删除,它们也会被删除。
如果使用委托事件处理(观察冒泡到更高级别的父对象的事件,例如body
or document
,那么这些事件将仍然存在,因为事件实际附加到的对象没有被替换。
您的问题没有用 jQuery 标记,但是您使用了一些类似 jQuery 的示例,因此在 jQuery 世界中,附加的事件如下:
$("#myObject").on('click', fn);
更换时将被删除#myObject
。但是,像这样的委托事件:
$(document.body).on('click', '#myObject', fn);
即使#myObject
被具有相同 ID 的不同对象替换,仍然有效,因为事件实际附加到的对象(document.body
在这种情况下)没有被删除或替换。