событие на вкладке отменить выбор в JQuery UI вкладки - PullRequest
2 голосов
/ 20 июля 2010

Я использую вкладки jquery ui 1.8.1

Я хочу привязать событие или скрипт, который будет запущен, когда вкладка отменяется, а любая другая вкладка выбирается, например,

.если у меня есть четыре вкладки и выбрана вкладка четыре, когда я выбираю вкладку 1 или вкладку 2, событие должно запускаться так, чтобы я мог остановить любые таймеры, работающие на вкладке 4

Другой вопрос, связанный с тем, запускаю ли я какие-либо таймеры, используя this

или если я использую setInterval с использованием стандартного jquery

, он не останавливается автоматически при выборе любой другой вкладки ...

любое решение будеточень помогу ...

спасибо

Прадют

Индия

Ответы [ 2 ]

0 голосов
/ 20 июля 2010

Если вы связываетесь с событием tabselect, вы можете определить текущую выбранную вкладку.Это позволит вам сделать что-то конкретное для этой вкладки до ее переключения.Вы даже можете вернуть false из обработчика, чтобы предотвратить переключение табуляции.Попробуйте выполнить следующие действия в отладчике (например, Firebug) на демонстрационном сайте пользовательского интерфейса jQuery: http://jqueryui.com/demos/tabs/default.html

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

В обработчике вы можете проверить выбранную вкладку и сделать все, что нужно для любой отмененной вкладки...

0 голосов
/ 20 июля 2010

По сути, вы хотите вызывать событие каждый раз, когда выбрана вкладка, , за исключением , когда его 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>

затем вы прикрепляете событие click к каждому тегу в неупорядоченном списке «tablinks», у которого нет «tab4» в качестве идентификатора:

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

и относительно ваших вторых вопросов, ссылка, которую вы предоставили, на самом деле содержит ответ на нее ..

когда вы создаете таймер с помощью «everyTime» или «oneTime», вы можете передавать метку в качестве параметра, чтобы вы могли останавливать свои таймеры в любое время с помощью метода «stopTime», т.е. 1013 *

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

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

теперь остановите этот таймер, позвонив

$(document).stopTime("doingSomething");
...