2010-08-04 2 views
-1

J'ai un ensemble de DIVs et je rends CheckBoxList dans chacun d'entre eux. Le nombre de DIV et le nombre de CheckBoxLists sont dynamiques. Chaque div a un bouton associé qui va basculer la visibilité de ce DIV particulier.jquery capture onToggle

Chaque fois que l'utilisateur clique sur une case à cocher, j'ai besoin d'afficher le texte de cette case dans une étiquette. Je pense que je devrais attacher un événement sur l'événement bascule de la DIV afin que lorsque la div devient visible, je peux lier une fonction sur l'événement click de cases à cocher dans ce div qui affichera le texte de la case à cocher cliquée.

Je me bats pour trouver un moyen de capturer quand le div devient visible ou invisible. Comment savoir quelle div est affichée à un moment donné?

Existe-t-il un autre moyen de le faire?

+0

Qu'entendez-vous exactement par toggled? – alopix

+0

De quoi parlez-vous? Tu veux dire la visibilité? Si c'est le cas, voir: http://stackoverflow.com/questions/941113/jquery-javascript-dom-visibility-event – gpmcadam

+0

Je parle de faire de div show ou de cacher en appelant l'événement .toggle(). – Asdfg

Répondre

0

Si vous voulez lier gestionnaire d'événements/actions pour les en tout cas:

$("div#theContainerId").find(":visible").each(function(/*Do Something*/)); 

Si vous voulez lier une autre action (autre que cacher/montrer) lors de la bascule(), faites ceci:

$(".toggleTarget").toggle(function(){$(this).hide(); /* add more actions here */}, function(){$(this).show(); /* add more actions here */}); 
+0

$ (". ToggleTarget"). Toggle (function() {$ (this) .hide();/* Ici, je vais trouver les cases à cocher toggleTarget et y attacher des gestionnaires d'événements * /}, Merci beaucoup. .... – Asdfg

0

Vous pouvez vérifier si un div est visible ou non au démarrage ou à intervalles réguliers.

this selector will tell you that.

après que vous devez garder une trace de qui se cache et le faire appeler une fonction je pense que

@ lien de bauer ce que je pense, mais travailler serait peut-être cher. Si ce n'est pas ce que vous voulez alors s'il vous plaît développer votre question.