代码之家  ›  专栏  ›  技术社区  ›  Pradyut Bhattacharya

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

  •  2
  • Pradyut Bhattacharya  · 技术社区  · 14 年前

    我正在使用jQueryUI选项卡1.8.1

    例如,如果我有四个选项卡,并且选择了选项卡四 我可以停止表4中运行的任何计时器

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

    或者如果我使用标准jquery使用setInterval

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

    谢谢

    印度

    2 回复  |  直到 14 年前
        1
  •  0
  •   gabtub    14 年前

    基本上,您要做的是在每次选择选项卡时调用事件,

    <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 a[id!=tab4]').click(function(e){
      //stoping timers or whatever
    });
    

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

    $(document).everyTime(1000, "doingSomething", function() {
      // NOTE: "doingSomething" is the label of this timer
    
      // make an annoying bleep sound or whatever
    });
    

    现在通过调用来停止计时器

    $(document).stopTime("doingSomething");
    
        2
  •  0
  •   carpie    14 年前

    如果绑定到“tabselect”事件,则可以确定当前选定的选项卡。这将允许您在切换选项卡之前执行特定于此选项卡的操作。您甚至可以从处理程序返回false以防止选项卡切换。在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')); 
    });