【问题标题】:How to prevent Jquery from being loaded several times within a jquery tab如何防止在 jquery 选项卡中多次加载 Jquery
【发布时间】:2011-01-31 15:59:43
【问题描述】:

我需要你的意见。我目前正在开发一个 web 应用程序,主要基于 struts 和 Jquery。

我的一个页面有以下配置:

页面包含 JQuery 'tabs' 对象的动作,动态地指向,意思是没有缓存,在其他几个动作上。

那些其他动作也包含带有 Jquery 代码的页面。

我的问题如下,当加载一次选项卡并返回时,我遇到了一些问题,因为选择器关联的对象正在重新初始化,导致错误。

我尝试将代码放在标签页级别,但由于 jquery 关联是在 <body> 加载结束时建立的,我无法将代码应用于不同的标签...

我真的很迷茫,因为我需要动态加载这些选项卡作为要求。有什么想法可以告诉我吗?

谢谢。

【问题讨论】:

  • 你不能将加载 jQuery 移动到页面的<head> 吗?

标签: jquery struts2


【解决方案1】:

我终于解决了我的问题:在移动我的代码片段之后,我可以看到 javascript 控制台向我显示了一个恼人的错误,并且我有多个版本的同一个对象,每次我回去每个标签。

错误:

错误:未捕获的异常:在初始化之前无法调用可拖动的方法;试图调用方法'destroy'

初始化:

$('#editbox_0').dialog(...)

每次(重新)加载时都会在主框架(包含所有选项卡)中创建一个 div。

但主要与一个问题有关:我使用的是 Jquery UI v. 1.8.5,我发现这个版本中有一个关于方法的错误:

可拖动(“销毁”)

更新到 UI 1.8.9 解决了所有问题...我没看错,图书馆是 :)

无论如何,谢谢大家。

(我应该关闭这个问题,还是让它打开以防有人遇到同样的问题?)

【讨论】:

    【解决方案2】:

    您可以声明一个名为 alreadyBeenDone 的全局变量并检查它是否为 0,如果是则将其设置为 1。在函数集结束时,您可以将 alreadyBeenDone 设置回 0。

    给我看你的(代码),我会展示 你我的(代码)...

    【讨论】:

      【解决方案3】:

      如果你不介意用 javascript 加载 jQuery,你可以按照这个问题的答案建议: Check if jQuery is included in Header (Joomla)

      基本上,您对 jQuery 对象进行未定义检查,如果为真,则动态加载 jQuery 库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        • 2018-02-01
        相关资源
        最近更新 更多