选项卡上的事件在jquery ui选项卡中取消选择

时间:2010-07-19 20:51:29

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

我正在使用jquery ui tabs 1.8.1

我想绑定一个事件或脚本,以便在取消选中标签并选择任何其他标签时运行

例如。如果我有四个标签,则选择标签四 当我选择标签1或标签2时,应该运行一个事件 我可以阻止任何在标签4中运行的计时器

另一个相关的问题是,如果我使用this

运行任何计时器

或者如果我使用标准jquery

使用setInterval

在选择任何其他标签时,它不会自动停止...

任何解决方案都会有很大的帮助......

感谢

Pradyut

印度

2 个答案:

答案 0 :(得分:0)

基本上你要做的就是每次选择一个标签时调用一个事件,除了时它的tab4,即:

当你的标签页看起来像这样

<div id="tabs">
  <ul id="tablinks">
    <li><a id="tab1" href="#tabs-1">First</a></li>
    <li><a id="tab2" href="#tabs-2">Second</a></li>
    <li><a id="tab3" href="#tabs-3">Third</a></li>
    <li><a id="tab4" href="#tabs-4">Fourth</a></li>
  </ul>
  <div id="tabs-1"></div>
  <div id="tabs-2"></div>
  <div id="tabs-3"></div>
  <div id="tabs-4"></div>
</div>

然后在“tablinks”无序列表中的每个标记上附加一个click事件,该列表没有“tab4”作为id:

$('#tablinks a[id!=tab4]').click(function(e){
  //stoping timers or whatever
});

关于你的第二个问题,你提供的链接实际上是答案..

当您使用“everyTime”或“oneTime”创建计时器时,您可以将标签作为参数传递,这样您就可以随时使用“stopTime”方法停止计时器,即:< / p>

$(document).everyTime(1000, "doingSomething", function() {
  // NOTE: "doingSomething" is the label of this timer

  // make an annoying bleep sound or whatever
});

现在通过调用

来停止此计时器
$(document).stopTime("doingSomething");

答案 1 :(得分:0)

如果绑定到“tabselect”事件,则可以确定当前选定的选项卡。这将允许您在选项卡切换之前执行特定于此选项卡的操作。您甚至可以从处理程序返回false以防止Tab切换。在jQuery UI演示站点的调试器(如Firebug)中尝试以下操作:http://jqueryui.com/demos/tabs/default.html

$('#tabs').bind('tabsselect', function(evt, ui) { 
    console.log($('#tabs').find('li.ui-tabs-selected a').attr('href')); 
});

在处理程序中,您可以检查所选标签,并为取消选择的任何标签执行所需操作...