一个特定选项卡上的jQuery Tab自定义事件

时间:2013-12-02 00:43:24

标签: jquery tabs dialog

我相信对于经验更丰富的人来说,这是微不足道的。我试图阻止一个指定的选项卡查找并打开其相应的div。相反,做我指定的任何事情,比如打开一个对话框。

我尝试使用return false和preventDefault()绑定到选项卡,它一般适用于所有选项卡,但不是缩小选择器时指定的那个,它只是打开div,就像典型的选项卡一样,控制台没有错误。

我也试过保持特定的标签故意破坏,没有它的div,这会导致各种愚蠢的东西......反正坏代码。

HTML

<div id="tabs">
  <ul>
    <li><a href="#tabs1">tabs 1</a></li>
    <li><a href="#tabs2">tabs 2</a></li>
    <li><a href="#customtab">custom tab</a></li>
  </ul>
  <div id="tabs1">
    etc
  </div>
  ..
  <div id="customtab">
    dialog content
  </div>
</div>

jQuery的:

$("#tabs [href=#customtab]").bind('tabselect', function(){
  alert("do whatever I say here");
  return false;
});

显然我的做法是错误的。建议?

谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

您需要使用beforeActivate事件

$("#tabs").bind('tabsbeforeactivate', function (e, ui) {
    if (ui.newPanel.is('#customtab')) {
        console.log("do whatever I say here", ui);
        return false;
    }
});

演示:Fiddle

如果jQuery UI 1.8

$("#tabs").bind('tabsselect', function (e, ui) {
    if ($(ui.panel).is('#customtab')) {
        console.log("do whatever I say here", ui);
        return false;
    }
});

演示:Fiddle