var myWindow = $("<div id='msgwindow'/>").someWidget({
option1: true,
option2: someVariableWhoseValueChanges
});
如果上面的代码多次执行会发生什么?id 为 #msgwindow 的元素是否被完全或部分覆盖?它是先销毁然后重新创建的吗?是否有前一个实例留下的痕迹?任何事件侦听器会发生什么?
var myWindow = $("<div id='msgwindow'/>").someWidget({
option1: true,
option2: someVariableWhoseValueChanges
});
如果上面的代码多次执行会发生什么?id 为 #msgwindow 的元素是否被完全或部分覆盖?它是先销毁然后重新创建的吗?是否有前一个实例留下的痕迹?任何事件侦听器会发生什么?
该元素不会被过度使用。简单地说,将在 DOM 中创建另一个具有相同 ID 的元素。
据我所知,事件侦听器(例如)$("body").on("click", "#msgWindow"
只会在与 DOM 中的 ID 匹配的元素的第一个实例上触发。
你不应该在一个文档中有多个 ID,这是不好的做法,考虑使用一个类。
您问题中的代码不适someWidget()
用于现有元素。它创建一个新<div>
元素并将小部件应用于该新元素(这可能会或可能不会导致将元素附加到页面的<body>
,具体取决于小部件)。
因此,多次运行此代码将导致创建多个元素并可能将其添加到 DOM 中。由于所有这些元素将共享相同的id
属性,这将使您的文档无效。