恢复旧的JQuery状态

Re-instate old JQuery state

本文关键字:状态 JQuery 恢复      更新时间:2023-09-26

所以我重新安装我的JQuery到一些初始状态。这是我的代码

<script src="http://code.jquery.com/jquery-2.2.1.min.js"></script>
<a href="#" id="link1">link1</a>
<script>
var copiedObject = jQuery.extend(true, {}, this); // initial state
$(document).on( "click", "#link1", function() { 
   alert("clicked link 1");
   return false;
});    
Object.keys(this).forEach(function (c) { 
   if(c=='jQuery'||c=='$'){       
      this[c]=copiedObject[c];
   }
});
</script>

当我运行这个时,我仍然能够运行link1。在我添加绑定之前,这个[jQuery]和这个[$]不应该有一个副本吗?因为在我添加点击事件之前,copydobject有一个版本。我想实现这个方法,这样我就可以从较早的时间重新恢复绑定。我知道我可以只使用"off",但在这个例子中可以有更多的JQuery事件绑定,我只是想在添加所有绑定之前重新恢复实例。

当你使用jQuery的on()函数时,它将添加一个带有JavaScript原生addEventListener(如果可用)或attachEvent(如果没有)的事件处理程序(Internet Explorer 8及更早版本)。这些事件监听器成为DOM对象的一部分,而不是jQuery状态的一部分。因此,您试图通过重置jQuery状态来删除事件处理程序的方法将不起作用。