그래서 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]와이 [$]에 복사본이 있어야하지 않습니까? 클릭 이벤트를 추가하기 전에 copiedObject에 버전이 있으므로 내가 이전에 바인딩을 다시 시작할 수 있도록이 메서드를 구현하고 싶습니다. 나는 "off"를 사용할 수 있지만이 예제에서는 더 많은 JQuery 이벤트 바인딩이있을 수 있으며 모든 바인딩이 추가되기 전에 인스턴스를 다시 작성하기 만하면됩니다.
귀하의 질문에 약간 혼란이 있습니다. 귀하의 문제를보다 명확하게 진술하도록 편집 할 수 있습니까? –
실제로 무엇을 하려는지 확실하지 않은 경우 바인딩을 제거하려면 .off (http://api.jquery.com/off/) – MugiwaraUK
그냥'$ (document) .off()'를 사용하십시오. 그리고 그게 다야. .on() (https://api.jquery.com/off/)에 첨부 된 모든 핸들러를 제거합니다. –