限制使用$(document).ready(function(){})

时间:2011-02-21 17:25:49

标签: jquery html

如何检查我的文档只有$(document).ready(function()的一个实例?

如果它被包含多次,我可以以某种方式删除重复的实例(类似于PHP的require_once();函数)吗?

2 个答案:

答案 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。所以你将在控制台中得到“两个”。