如何检查我的文档只有$(document).ready(function()
的一个实例?
如果它被包含多次,我可以以某种方式删除重复的实例(类似于PHP的require_once();
函数)吗?
答案 0 :(得分:3)
您是说可以多次添加完全相同的代码吗?
如果是这样,我想你可以设置一个全局属性来指示里面的代码是否已经运行,然后在ready()
处理程序中测试该属性。
$(document).ready(function() {
// check a flag to see if this has been called yet
if( !window.thisCodeHasRun ) {
// set the flag to show this has been called
window.thisCodeHasRun = true;
/* run your code */
}
});
最好在服务器端处理这个问题,但是如果你必须在客户端这样做,这应该可行。
答案 1 :(得分:0)
一种选择是使用bind和unbind:
$(document).bind("ready",function(){
console.log("zero");
});
$(document).bind("ready",function(){
console.log("one");
});
// get rid of previous ready events
$(document).unbind("ready");
$(document).bind("ready",function(){
console.log("two");
});
在上面,第一个和第二个就绪事件永远不会触发,因为已经调用了unbind。所以你将在控制台中得到“两个”。