【问题标题】:Using jQuery UI Tabs. How would I make one of the tabs link to a URL rather than load a tab panel?使用 jQuery UI 选项卡。如何将其中一个选项卡链接到 URL 而不是加载选项卡面板?
【发布时间】:2011-03-30 17:02:14
【问题描述】:

我正在使用 jQuery UI 选项卡来创建页面的垂直选项卡部分,并希望最后一个垂直选项卡链接到 URL,而不是加载选项卡面板。

有什么最好的方法来做到这一点吗?我可以将除 LI 之外的另一个元素添加到列表中,但希望最后一个 li 的行为有所不同。

感谢您的帮助。

这是我的 javascript:

  // vtabs
  $("#aboutprod-tabs").tabs(
    { fx: [{opacity:'toggle', duration:'normal'},
    {opacity:'toggle', duration:'fast'}] })
    .addClass('ui-tabs-vertical'); 

还有 HTML

<div id="aboutprod-tabs">
  <ul>
    <li><a href="#tabs-1">First</a></li>
    <li><a href="#tabs-2">Second</a></li>
    <li><a href="#tabs-3">3rd</a></li>
    <li class="last"><a href="/products">Learn more...</a></li>
  </ul>
  <div id="tabs-1">
    Tab panel 1
  </div>
  <div id="tabs-2">
    Tab panel 2  
  </div>
  <div id="tabs-3">
    Tab panel 3
  </div>
</div>

【问题讨论】:

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


    【解决方案1】:

    在您的.tabs() 调用之后,您可以反转点击行为并且href 它发生了变化,像这样将href 放回去:

    $("li.last a").unbind('click').click(function() {
      this.href = $.data(this, 'href.tabs');​​​​
    });
    

    You can give it a try here.

    更新:使用较新版本的 jQuery:

    从要更改的链接中取消绑定 jQuery-UI 的单击处理程序后,无需添加单击处理程序。这将起作用:

    $("li.last a").unbind('click');
    

    【讨论】:

    • 要使用 jQuery 1.8.2/jQuery UI 1.9.0,只需使用 $("li.last a").unbind('click')。答案中的示例适用于早期版本的 jQuery,但由于某种原因,添加的点击处理程序在最新版本中搞砸了。
    • Alex 绝对正确,应编辑此答案以包含此信息。
    • 我知道这个问题比较老,但我认为这是一个重要的说明。如果您希望转到外部链接而不是仅加载一个链接,则需要一个单击处理程序,并且它对我来说使用 jquery-ui-1.10.3 可以正常工作。用 Location.href 代替 this.href。就我而言,我想让一个标签成为注销按钮。
    • 我无法让这段代码工作......我不得不使用:$("li:last a").unbind('click'); 为了只影响标签,我使用了:$('#tabID &gt; ul &gt; li:last a').unbind('click');
    • 你省了一大堆麻烦。非常感谢。
    【解决方案2】:

    您可以更改选项卡的选择方法:

    $( ".selector" ).tabs({ select: function(event, ui) { ... } });

    并将ui.tab.id(或ui.panel.id,基于您使用的标记)与您要发送的标签的ID进行比较,然后使用location.href=...重定向用户。

    【讨论】:

    • 这是在哪里记录的? api.jqueryui.com/tabs 目前对标签没有说任何关于此的内容...
    • 这在我写这篇文章时可能在 2010 年有效,但我没有跟上 jQuery,所以我不确定。祝你好运。
    • 感谢您提供的信息,最后我制作了自己的“标签”小脚本,因为我也不想要样式,所以我一口气解决了 2 个问题 解决方案 - stackoverflow.com/a/39621077/1835470
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多