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

发布于 2024-11-06 18:29:00 字数 1344 浏览 2 评论 0原文

到目前为止我的代码:

$(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”。 有什么建议吗?

My code so far:

$(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>

As you can see from the code when you click on "Contact us" text in tab 1 there is a link to tab 5.
What i want to do is to create a link from "Check our services" to tab 4.
In general to create over 10 links withing tabs linking other tabs

I think i know that i have to change $tabs.tabs('select', 4); to $tabs.tabs('select', id); but i dont know how to call the "id" in html when i want to create my link.
Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤云独去闲 2024-11-13 18:29:00

我想我会使用链接本身的 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;     
});

I think I would handle this differently using the href on the link itself, perhaps with a class to indicate that it is an intra-tab link, to determine which tab to load and setting up the handlers in the tabs create event.

$('#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>
    ...

You could also do it using live handlers.

$('#tabs').tabs();
$('a.intra-tab').live( 'click', function() {
    var id = Number( $(this).attr('href').replace(/#tabs-/,'') ) - 1;
    $('#tabs').tabs('select',id);
    return false;     
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文