我遇到了jquery的问题。
情景如下:
我使用Jquery的事件委托触发不同的自定义事件,如下所示:
$(document).trigger("myCustomEvent");
并像他们一样倾听他们:
$(document).on("myCustomEvent",function(e){
//Triggered
});
问题是我使用AJAX动态加载页面,AJAX可能有脚本。
如果加载的页面包含Jquery,则包含会破坏事件的绑定。
有什么方法可以解决这个问题吗? jquery是否验证是否已加载?
我无法控制已加载的页面,因为它们是外部的
这是一个复制这种行为的小提琴(http://jsfiddle.net/97eca61w/15/),其中触发的事件应该出现两次..
$(document).on("myCustomEvent",null,function(e){
//debugger;
$("#log").append("<p>Custom event triggered</p>");
});
$(document).ready(function(e){
//debugger;
$("#contentDiv").html("<scr" + "ipt src='https://code.jquery.com/jquery-2.2.4.min.js' ></scr" + "ipt><scr" + "ipt>$(document).ready(function(e){alert('ready')})</scri" + "pt>");
console.log($._data($(document)[0],"events"));
$(document).trigger("myCustomEvent");
setTimeout(function(){
debugger;
$(document).trigger("myCustomEvent");
console.log($._data($(document)[0],"events"));
},1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div>
<div id="contentDiv">
</div>
<div id="log">
</div>
</div>