【问题标题】:jQuery .load() doesn't reliably load js files when moving down the DOM tree向下移动 DOM 树时,jQuery .load() 不能可靠地加载 js 文件
【发布时间】:2009-08-07 17:13:47
【问题描述】:

这个问题措辞很糟糕,我知道...

我正在尝试将页面加载到 asp:listview 中的 div 中。该页面在第一次尝试时加载正常,但后续加载似乎没有运行 jquery.ui.js 文件来标记加载的页面。

我将调用以选项卡加载的页面移动到 .load() 函数的回调函数中,但这并没有更好地解决问题。代码如下:

$(".clientModal").click(function() {
            var clientID = $(this).attr("title");
            if ($(this).hasClass("highlight")) {
                $('#ClientPanel' + clientID).slideToggle(200);
            }
            else {
                $('#ClientPanel' + clientID).load("Details.aspx?id=" + clientID, null, function() {
                    $("#clientTabs").tabs();
                    $('#ClientPanel' + clientID).slideToggle(200);
                });
            }
            $(this).toggleClass("highlight");
        });

这是在函数 pageLoad() 内部,因为我们也在使用 Microsoft Ajax,并且希望在 pageLoad 而不是 document.ready 上执行此操作。关于为什么 jquery.ui 在初始加载时可以正常工作,但在后续加载时不能正常工作的任何想法?谢谢!

编辑! 让我在这里添加一些信息。我注意到,如果我从屏幕底部返回单击链接,它会正常运行,显示选项卡并正常工作。但是,如果我自上而下,它适用于第一次单击,然后随后单击 DOWN 树不能正常工作,但是,单击 UP 树可以。

我在这里完全疯了吗? :)

【问题讨论】:

    标签: jquery jquery-ui listview load tabs


    【解决方案1】:

    尝试使用已加载的页面以及正在加载它的页面加载 jquery.ui 文件。加载的页面可能不知道 jquery.ui。

    【讨论】:

    • 已经尝试过两种方式。好像没什么区别。
    【解决方案2】:

    问题在于调用 clientTabs 的 id。向上移动时,它没有问题,因为它找到了#clientTabs 的第一个实例并应用了 UI,向上移动时,第一个是我想要的。向下移动时,#clientTabs 的第一个实例不是我调用的那个,所以它不起作用。

    所以,切换到一个类引用 ($(".clientTabs")),它现在工作得很好。有时,类比 ids 更好......

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多