2010-05-18 5 views
3

Les délégués jQuery sont excellents, en particulier lors de l'utilisation avec des événements de clic de ligne de table.jQuery délégués avec des plugins

Je me demandais s'il était également possible d'utiliser des délégués avec des plug-ins?

Par exemple, si j'attach plug-in pour chaque zone de texte élastique, je le ferais:

$("textarea").elastic(); 

Mais comment pourrais-je joindre ce plug-in à l'aide délégué?

Répondre

4

Vous pouvez tricher. Eh bien, vous pouvez dans ce cas.

Vous avez besoin d'un événement délégué qui se produira toujours avant que le plug-in doive être appliqué et d'un moyen de savoir s'il l'a déjà été. Vous pouvez toujours l'ajouter vous-même.

En supposant que vous êtes sur à propos de ce plugin:

http://www.unwrongest.com/projects/elastic/

alors, puisque vous avez toujours de se concentrer un textarea avant de taper/coller dans, vous pouvez le faire:

$('textarea').live('focus', function(){ 
    if(!$(this).data('iselastic')) 
     $(this).data('iselastic', true).elastic(); 
}) 

Je suppose que vous utilisez jQuery 1.4 au moins.

4

C'est vraiment à l'auteur du plugin d'écrire le plugin pour utiliser la délégation d'événements. Live et delegate ne fonctionnera pas dans l'application d'un plugin.