【问题标题】:Question regarding ready function关于就绪功能的问题
【发布时间】:2011-06-05 12:14:16
【问题描述】:

我的页面 content.html 是从另一个页面调用的。我的问题是我们的页面中只有 AJAx 调用。所以在我的页面中,我注意到每次都没有调用 ready 函数。我必须每次清除缓存是时候进入准备好的功能了。如何解决这个问题。另外,如果一个基本页面中包含任何准备好的功能,并且每个地方都包含这个。我们应该将我们的代码附加到这个功能吗?或者一个页面可以有很多准备好的功能

$(document).ready(function() {
// Do this immediately if DOM is loaded, or once it's loaded otherwise.
});

【问题讨论】:

    标签: jquery jquery-ui jquery-selectors jquery-validate


    【解决方案1】:

    一个页面可能有多个就绪函数。 jQuery 将您传递给它的函数绑定到“就绪”事件。因此,如果您将三个函数绑定到事件,则所有三个函数都会在它被触发时被调用。

    ready 事件本身,每次 DOM 准备就绪时都会触发。每次页面浏览都会发生一次,不应要求您清除缓存才能触发。

    【讨论】:

    • 你如何解释在这种情况下没有调用准备好的函数?
    • 通常您应该只有一个现成的绑定,因为您只需要 1 个。您希望在代码执行中发生什么?
    • 出于测试目的,我只是在准备就绪时发出警报,其行为是有时会被调用,有时不会。
    • 您能否尝试使用jsfiddle.net 的工具复制问题。我从来没有遇到过就绪事件 not 触发,在某些情况下 jQuery 可能无法正确加载。
    • 不,不能,包括那些AJAx函数很复杂。还有当我们的页面中包含jquery(jquery.js)文件时。是否必须始终包含在head标签中?
    【解决方案2】:

    Marcus 说得对,他说您可以在一个页面中拥有多个现成的功能。但是,当文档准备好时,会运行准备好的功能。因此,一旦发生这种情况,您就不能期望 ready 函数再次运行,直到您重新加载页面(这可能是您所看到的)。

    【讨论】:

      【解决方案3】:
      $().ready(initializationFunction);
      
      //call this in your ajax callback
      initializationFunction(jQuery);
      

      来源:How to trigger $().ready() in jQuery?

      initializationFunction 是通常存储在就绪事件中的函数。

      【讨论】:

        最近更新 更多