切换选项卡时Jquery闪烁

时间:2013-02-26 19:18:51

标签: javascript jquery jquery-ui-tabs jquery-tabs

我不知道问题是jquery的加载函数还是jquery的标签(或者没有),但我的问题是当在tab2和tab1之间切换时(见下面的代码),标签内容被清除然后再次加载这会引起眨眼。数据通过load函数动态加载到tab1(id:the_paragraph)中的段落元素。从tab1切换到tab2时不会发生此问题。

重现: 转到http://mumka12345.appspot.com/,将鼠标悬停在tab2上,然后返回到tab1。我已经发出了两个警告来强调这个问题。

这是我的主页,有2个标签

<!DOCTYPE html>
<html>
<head>

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js'></script>


<script>
    $(document).ready(function() 
    {
        $("#tabs").tabs({
        load: function(event, ui) 
        {
            $(ui.panel).delegate('a', 'click', function(event) 
            {
                $(ui.panel).load(this.href);
                event.preventDefault();
            });
        },
        event: "mouseover"
        });
    });
</script>

</head>

<body style="font-size:62.5%;">

<div id="tabs">
    <ul>
        <li><a href="/tab1"><span>tab1</span></a></li>
        <li><a href="/tab2"><span>tab2</span></a></li>        
    </ul>
</div>
</body>
</html>

服务器在请求'tab1'时返回以下内容:

<!DOCTYPE html>
<html>
<head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js'></script>


<script>
    $(function() 
    {
        alert('ready');
        $("#the_paragraph").load("/fillParagraph" , function() 
        {
            alert('paragraph loaded');

        });
    });
</script>

</head>'


<body">    
<div id="container">
<p id="the_paragraph">
</p>    

</body>
</html>

当客户端请求'tab2'时,服务器返回字符串'Hello Tab2' 当客户端请求'fillParagraph'

时,服务器返回字符串'Dynamic Fill'

1 个答案:

答案 0 :(得分:0)

选项卡1的响应会触发jQuery和Jquery UI的重新加载,这当然没有帮助。

从响应中删除这些脚本引用。

&安培;尝试使用console.log而不是alert。