2009-09-04 8 views
0

J'utilise une version fortement modifiée du plugin jqueryFileTree, capable d'ajouter de nouveaux fichiers et dossiers. Lorsqu'un nouveau fichier est créé en temps réel, je dois à nouveau lier l'arborescence à l'événement click afin que tous les nouveaux fichiers et dossiers puissent fonctionner comme prévu.Déclenchement d'un événement de clic avec jQuery échouant

La simple liaison du fichier a causé quelques problèmes avec la fonctionnalité des dossiers. Pour chaque nouveau fichier exécuté par le fichier, cela signifie que lorsque vous ajoutez un fichier puis cliquez sur un répertoire pour le fermer, il s'ouvre puis se ferme car la fonction est exécutée deux fois.

J'ai récemment localisé le problème et j'essaie de dissocier tous les événements connectés au fichier avant de rétablir la connexion. Cependant, le problème se produit toujours. Pourquoi cela pourrait-il être? Erreur de syntaxe?

$('UL.jqueryFileTree').unbind(); 
bindTree('UL.jqueryFileTree'); 

Cheers!

Chris

+0

Essayez de voir si $ (« UL.jqueryFileTree ») retourne l'objet correct/s –

+0

Pourriez-vous nous dire quel genre de problème, il vous donne. Merci. – Tarik

Répondre

1

Aha!

J'aurais dû mieux faire mes recherches. Cela fonctionne correctement après l'écriture à la place:

$('UL.jqueryFileTree').find('LI A').unbind(); 
bindTree('UL.jqueryFileTree'); 
+0

C'est super d'entendre que ça fonctionne. – Tarik

0

Mais si Unbind pose un problème, vous pouvez utiliser RemoveAttr() pour supprimer des événements d'éléments. Parce qu'il y a un bug lors de l'événement unbind dans jQuery.

0

Regardez également jQuerys live-event. Perhaphs, vous n'avez pas besoin de relier. Ça pourrait mieux marcher.

-à-dire

$('#divId a').live('click', function(e){ 
    //do something to all matched and future elements 
}); 
Questions connexes