0

我正在使用 jQuery 版本 jquery-1.8.2.js 和 jquery-ui.js v1.9.0。我有一个带有 index.php 的 php 页面。当我打开 index.php 时它加载得很好,但是当我切换选项卡时,加载内容需要一些时间 似乎 jquery 需要足够的时间来加载,我无法找到我在 index.php 中有以下代码的原因

$(function() {
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn't load this tab." );
                });
            }
        });
    });

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Set Up</a></li>
        <li><a href="temp1.php">temp1 </a></li>
        <li><a href="temp2.php">temp 2</a></li>
        <li><a href="temp3.php">temp 3</a></li>
    </ul>
    <div id="tabs-1">
    content here
    </div>
</div>

temp1.php中,我有一个将数据填充到表中的 ajax 方法。

4

2 回答 2

0

虽然我不完全确定你在问,但最后一句话让我相信你不确定为什么需要下面的 JavaScript 代码:

$(function() {
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn't load this tab." );
                });
            }
        });
    });

之所以存在此代码,是因为它是一个错误处理程序,用于处理 ID 为“选项卡”的 div 中发生的任何事情。因此,如果您加载某些内容并返回错误,该处理程序将捕获错误并显示“无法加载此选项卡”的精美文本。而不是什么也看不见。放置错误处理程序的原因beforeLoad是因为主要位置错误来自使用选项卡时发生在加载期间 - 因此,如果在可能发生错误之前未放置处理程序 - 它无法被捕获。

于 2013-01-09T21:14:06.050 回答
0

好的,我来这里是为了回答我自己的问题,我注意到我在所有页面的 head 部分都有指向 jquery-ui.css 和 jquery.js 的链接,例如在 ul 中定义的 temp1.php、temp2.​​php 和 temp3.php在 index.php 作为选项卡的一部分。删除它们后它工作正常。我相信 js 和 css 加载在每个页面上,在标签页的情况下不应该加载,因为它加载在 index.php

于 2013-01-10T02:12:43.813 回答