jQuery选项卡:能够更改选项卡但内容不会加载

时间:2012-04-24 15:23:36

标签: jquery jquery-tabs

我正在尝试根据按钮点击更改标签但不知何故它不起作用。它确实更改了选项卡但不加载内容,也不会调用select或show事件。这就是我的标记的样子:

<div id="content">
   <ul>
      <li><a id="tab1" href="Page1.aspx"><span>Tab 1</span></a></li>
      <li><a id="tab3" href="Page2.aspx"><span>Tab 2</span></a></li>
      <li><a id="tab4" href="Page3.aspx"><span>Tab 3</span></a></li>
      <li><a id="tab5" href="Page4.aspx"><span>Tab 4</span></a></li>
      <li><a id="tab7" href="Page5.aspx"><span>Tab 5</span></a></li>
   </ul>
</div>


<button id="Button1" onclick="JavaScript:return ChangeTab();">Go to next tab</button>

function ChangeTab()
    {
         var $tabs = $('#content').tabs();
         var selected = $tabs.tabs('option', 'selected');
         $tabs.tabs("option", "selected", selected + 1);
         //$tabs.tabs('select', selected + 1);
         return false;
    }

这是我初始化标签的方式:

$( "#content" ).tabs();

有人可以指出我在这里缺少什么吗?

4 个答案:

答案 0 :(得分:0)

用于选择标签的代码似乎不正确。您正在进行的一些调用是传递太多(或不正确)参数。你应该这样做:

$('#Button1').click(function()
{
    var currentTab = $('#content').tabs('option', 'selected');
    var newTab = parseInt(currentTab) + 1;

    $('#content').tabs('select', newTab);
});

答案 1 :(得分:0)

function ChangeTab(){
         var $tabs = $('#content');
         var selected = $tabs.tabs('option', 'selected');
         $tabs.tabs("option", "selected", selected + 1);
         $tabs.tabs('select', selected + 1);
}​

演示:http://jsfiddle.net/ZffYf/

答案 2 :(得分:0)

您的HTML或Javascript代码中存在问题。它应该工作:这是一个最小的工作演示http://jsfiddle.net/pomeh/Csdf4/

HTML代码

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">A</a></li>
        <li><a href="#tabs-2">B</a></li>
        <li><a href="#tabs-3">C</a></li>
        <li><a href="#tabs-4">D</a></li>
        <li><a href="#tabs-5">E</a></li>
    </ul>
    <div id="tabs-1">Content A</div>
    <div id="tabs-2">Content B</div>
    <div id="tabs-3">Content C</div>
    <div id="tabs-4">Content D</div>
    <div id="tabs-5">Content E</div>
</div>

<input type="button" value="Go next" onclick="goNext();" />

Javascript代码

var $tabs = $( "#tabs" );

// initialize once
$tabs.tabs({
    select: function(event, ui) {
        console.log( "select event" );
    },
    show: function(event, ui) {
        console.log( "show event" );
    }
});


function goNext() {
    // only "select" the next element in the handler
    var index = $tabs.tabs( "option", "selected" );
    $tabs.tabs( "select", index+1 );
}

答案 3 :(得分:0)

$(function() {
    $('#content').tabs();

    $("#content").tabs("option", "selected", 1);


    var index = $("#content").tabs("option", "selected");

    $("#button1").click(function() {
        $("#content").tabs("option", "selected", 1);
    });


    window.setInterval(yourfunction, 1000);

    function yourfunction() {
        var x = (index++) % 3;
        $("#content").tabs("option", "selected", x);
    }
});

在Fiddler中尝试这个例子,对不起,我不详细解释。

JSFiddle