UI jQuery选项卡 - 在同一页面上的选项卡中创建多个选项卡链接

时间:2011-05-13 03:10:59

标签: hyperlink jquery-ui-tabs

到目前为止我的代码:

$(function(){
        $( "#tabs" ).tabs().find( ".ui-tabs-nav" ).sortable({ axis: "x" });                         
        $(document).ready(function() {
            var $tabs = $("#tabs").tabs();
            $('#tabs-1 a').click( function(){
                $tabs.tabs('select', 4); });

});
<div id="tabs">
        <ul>
            <li><a href="#tabs-1">Home</a></li>
          <li><a href="#tabs-2">Alarms</a></li>
            <li><a href="#tabs-3">Access Control</a></li>
            <li><a href="#tabs-4">Services</a></li>
            <li><a href="#tabs-5">Contact Us</a></li>
        </ul>
        <div id="tabs-1">
          <p><span class="bodytext">Check our services</span></p> //want to link to tab 4(services)
          <p><span class="bodytext">
          <a href="#tabs-5">Contact us</a>for free 24hours a day...</span></p>

正如您在单击选项卡1中的“联系我们”文本时从代码中看到的那样,有一个指向选项卡5的链接。 我想要做的是创建一个从“检查我们的服务”到选项卡4的链接。 通常用链接其他标签的标签创建超过10个链接

我想我知道我必须将$tabs.tabs('select', 4);更改为$tabs.tabs('select', id);但我不知道在我想创建链接时如何在html中调用“id”。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我想我会使用链接本身上的href来处理这个问题,可能还有一个类来指示它是一个内部选项卡链接,以确定要加载哪个选项卡并在选项卡创建事件中设置处理程序。

$('#tabs').tabs({
     create: function(event,ui) {
         $('a.intra-tab',ui.panel).unbind('click').click( function() {
            var id = Number( $(this).attr('href').replace(/#tabs-/,'') ) - 1;
            $('#tabs').tabs('select',id);
            return false;
         });
     }
});

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Home</a></li>
        <li><a href="#tabs-2">Alarms</a></li>
        <li><a href="#tabs-3">Access Control</a></li>
        <li><a href="#tabs-4">Services</a></li>
        <li><a href="#tabs-5">Contact Us</a></li>
    </ul>
    <div id="tabs-1">
      <p><span class="bodytext"><a href="#tabs-4" class="intra-tab">Check our services</a></span></p>
    </div>
    ...

您也可以使用实时处理程序来完成。

$('#tabs').tabs();
$('a.intra-tab').live( 'click', function() {
    var id = Number( $(this).attr('href').replace(/#tabs-/,'') ) - 1;
    $('#tabs').tabs('select',id);
    return false;     
});