2010-07-19 16 views
2

Je suis en utilisant les onglets ui jquery 1.8.1sur l'onglet annuler la sélection dans les onglets jquery ui

Je veux lier un événement ou un script à exécuter lorsqu'un onglet se décochée et tout autre onglet est sélectionné

par exemple. si i ai quatre pattes et la languette quatre est choisi lorsque je sélectionne l'onglet 1 ou onglet 2, puis un événement doit fonctionner de telle sorte que i peut arrêter les compteurs en cours d'exécution dans l'intercalaire 4

Une autre question connexe est si im exécutant des minuteries en utilisant this

ou si im en utilisant setInterval en utilisant jquery norme

il ne s'arrête pas automatiquement sur la sélection tout autre onglet ...

toute solution serait d'une grande aide ...

grâce

Pradyut

Inde

Répondre

0

essentiellement ce que vous voulez faire est d'appeler un événement chaque fois qu'un onglet est sélectionné, sauf lorsque son TAB4, à savoir .:

lorsque votre onglets en-tête ressemble en quelque sorte à ce

<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> 

alors vous attachez un événement click sur tous une étiquette dans la « tablinks » liste non ordonnée, qui n'a pas « TAB4 » comme id:

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

et en ce qui concerne votre deuxième question, le lien que vous avez fourni détient effectivement la réponse à Lorsque vous créez un minuteur en utilisant "everyTime" ou "oneTime", vous pouvez passer une étiquette en paramètre, de sorte que vous puissiez arrêter vos minuteurs quand vous le voulez avec la méthode "stopTime", ex .:

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

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

maintenant arrêter ce compteur en appelant

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

Si vous vous liez à l'événement 'tabselect', vous pouvez déterminer l'onglet actuellement sélectionné. Cela vous permettra de faire quelque chose de spécifique à cet onglet avant le changement d'onglet. Vous pouvez même renvoyer false du gestionnaire pour empêcher le changement d'onglet. Essayez ce qui suit dans un débogueur (comme Firebug) sur le site de démonstration jQuery UI: http://jqueryui.com/demos/tabs/default.html

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

Dans le gestionnaire, vous pouvez vérifier l'onglet sélectionné et faire tout ce dont vous avez besoin pour un onglet qui obtient décochée ...

+0

Ne pensez-vous pas que l'utilisation d'un nom de classe jquery interne est un peu compliqué? Avez-vous maintenant un moyen plus propre de récupérer l'index de l'onglet actuellement sélectionné? –