jQuery: Comment lier un événement à la div lorsqu'il devient visible?
J'ai un élément div:
<div id="tab1">
.
Tab data
</div>
Comment lier un événement personnalisé lors de cette div devient visible (obtient display: block;
)?
Et je tiens aussi à lier un événement lors de cette div devient invisible (obtient display: none;
).
J'aimerais le faire en jQuery.
Edit:
Je suis en train de faire simple onglets avec le contenu ajax. Je veux que le contenu de ce onglets en ajax-mis à jour uniquement lorsque l'onglet est visible.
Pouvez-vous donner un peu plus de contexte à ce que vous faites?
Alors que l'un des commentateurs ci-dessous a donné une solution viable, j'imagine que ce serait plus intelligent de se lier sur des événements personnalisés pour quand les onglets sont commutés. Il est beaucoup plus intelligente que la surveillance de la page contenu de la visibilité.
Merci de partager une partie de votre code Ajax.
Alors que l'un des commentateurs ci-dessous a donné une solution viable, j'imagine que ce serait plus intelligent de se lier sur des événements personnalisés pour quand les onglets sont commutés. Il est beaucoup plus intelligente que la surveillance de la page contenu de la visibilité.
Merci de partager une partie de votre code Ajax.
OriginalL'auteur SaltLake | 2010-10-04
Vous devez vous connecter pour publier un commentaire.
De démarrer et d'arrêter l'AJAX mise à jour en fonction de la visibilité. Vous pouvez utiliser
.est()
pour retourner une valeur TRUE ou FALSE pour:visible
:Voici un exemple simple d'une horloge qui s'arrête quand il est invisible. Notez que les numéros ne pas continuer à augmenter quand ils ne sont pas visibles:
jsFiddle exemple
Bien sûr, dans le cas ci-dessus, et peut-être votre cas, c'est plus simple à simple à tour de tourner la mise sous et hors tension:
jsFiddle exemple
Ma question n'était pas sur la façon de démarrer/arrêter l'envoi des requêtes ajax, mais sur la façon de lier un événement à div lorsqu'il devient visible (lorsque l'onglet est actif).
Ouais. jsFiddle est assez utile et amusant!
OriginalL'auteur Peter Ajtai
Que l'événement toujours lié à la div, mais à l'intérieur de l'événement, de faire quelque chose comme ce qui suit:
Maintenant votre événement ne sera déclenchée que si l'élément est visible à l'utilisateur.
OriginalL'auteur Mike Trpcic
La solution que j'ai trouvé a été de tirer jusqu'à
focus
cas lorsque l'onglet est sélectionné.Et puis j'ai attraper ces
focus
etblur
événements:OriginalL'auteur SaltLake