【问题标题】:jQuery UI Tabs with $(document).ready equivalent具有 $(document).ready 等效项的 jQuery UI 选项卡
【发布时间】:2009-05-19 15:42:44
【问题描述】:

我正在尝试使用 jQuery UI 选项卡,就像 ASP.Net 中的母版页一样。我有特定的 javascript 需要在每个选项卡加载后运行。我试图在每个页面中都有一个 $(document).ready 函数,但我读过这是不好的做法,而且似乎只能在 IE 中使用。

我知道有一个加载事件,但我需要为每个选项卡指定该事件,我不确定如何完成此操作,或者是否可能。对于每个页面加载,我可能不得不恢复使用实际的 MasterPage 和回发。

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    $(document).ready() 是一个不错的做法,它适用于所有支持 jQuery 的浏览器。如果您的事件只在 IE 中触发,那么您自己的代码中就有错误。

    我的应用程序中有几十个现成的函数,没有任何问题。

    【讨论】:

    • 感谢大家。我做了更多的研究。我在我的子页面中包含了对 jQuery 的引用以进行测试,出于某种原因,这导致我在页面中编写的其余 javascript 出现问题。 “一般来说,您不应该将加载的元素视为新页面并调用 $(document).ready。这不是新页面,而是添加到 DOM 中的一些新元素。所有 ajax 方法都具有回调方法,即成功加载数据时调用。"这就是我读到的告诉我这可能是错误的方式。我现在可以工作了。再次感谢!
    【解决方案2】:

    您从哪里得知这是不好的做法?

    Afaik,拥有多个 $(document).ready() 只会使它们“合并”,因此它们中的任何一个中的所有代码都将运行。我不记得这是否是 jQuery 1.3 中的新内容,所以你可能想检查一下。

    【讨论】:

      【解决方案3】:

      拥有多个$().ready 并不是一个坏习惯,除非您不必要地将其拆分为多个。在以 ajaxily 方式加载选项卡的情况下,恕我直言,将 $(document).ready 放在加载的内容中可能是发生某些特定于选项卡的操作的最佳方式。我用它来重新绑定新加载的元素,因为它们被注入到新加载的选项卡中。

      【讨论】:

      • 如果您正在绑定 .click 事件等,请查看 jQuery 1.3 中的(新).live() 事件。他们会为你做这项工作!
      猜你喜欢
      • 2021-01-08
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多