重新启动旧的JQuery状态

时间:2016-09-03 04:53:15

标签: javascript jquery

所以我将我的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]和这个[$]有副本吗?由于复制对象在我添加click事件之前有一个版本。我想实现此方法,以便我可以从较早的时间重新启动绑定。我知道我可以使用&#34; off&#34;,但是在这个例子中可以有更多的JQuery事件绑定,我只想在添加所有绑定之前重新实例化实例。

1 个答案:

答案 0 :(得分:1)

当您使用jQuery的on()函数时,它将添加一个事件处理程序,其中包含JavaScript的本机addEventListener(如果可用)或attachEvent(如果不可用)(Internet Explorer 8及更早版本)。那些事件侦听器成为DOM对象的一部分,而不是jQuery状态。因此,您尝试通过重置jQuery状态来删除事件处理程序的方式将无法正常工作。