jQuery动态创建了ID为的元素:如果元素已经存在,会发生什么? var myWindow=$(“”)。someWidget({ 选项1:正确, 选项2:某些值发生变化的变量 });

jQuery动态创建了ID为的元素:如果元素已经存在,会发生什么? var myWindow=$(“”)。someWidget({ 选项1:正确, 选项2:某些值发生变化的变量 });,jquery,Jquery,如果上面的代码执行多次,会发生什么情况?id为#msgwindow的元素是否被完全或部分覆盖?它是先被摧毁然后再被重建的吗?是否有前一次事件的痕迹?任何事件侦听器会发生什么情况?您问题中的代码不会将someWidget()应用于现有元素。它创建一个新的元素,并将小部件应用于该新元素(根据小部件的不同,可能会或可能不会导致将元素附加到页面的) 因此,多次运行此代码将导致创建多个元素并可能将其添加到DOM中。由于所有这些元素将共享相同的id属性,这将使您的文档无效。元素不会被过度写入。简单地说,将在

如果上面的代码执行多次,会发生什么情况?id为#msgwindow的元素是否被完全或部分覆盖?它是先被摧毁然后再被重建的吗?是否有前一次事件的痕迹?任何事件侦听器会发生什么情况?

您问题中的代码不会将
someWidget()
应用于现有元素。它创建一个新的
元素,并将小部件应用于该新元素(根据小部件的不同,可能会或可能不会导致将元素附加到页面的


因此,多次运行此代码将导致创建多个元素并可能将其添加到DOM中。由于所有这些元素将共享相同的
id
属性,这将使您的文档无效。

元素不会被过度写入。简单地说,将在DOM中创建另一个具有相同ID的元素

据我所知,事件监听器,如
$(“body”).on(“click”,“#msgWindow”
仅在与DOM中的ID匹配的元素的第一个实例上启动


你不应该在文档中有多个ID,这是一个糟糕的练习,考虑使用一个类。

应该很好的看到:@ Christophe Roussy:谢谢你的链接。我想知道以前的元素是不是从DOM中移除而不是扩展呢?还是做一个检查看看这个项目是否已经存在或者给它动态。身份证s@mcgrailm是的,有一个反变量或什么的:)我不是在提倡上述方法,只是想知道副作用是什么。我想要一个“傻瓜”对象。
    var myWindow = $("<div id='msgwindow'/>").someWidget({
      option1: true,
      option2: someVariableWhoseValueChanges
     });