jquery ui _trigger vs déclencheur
J'ai développé une interface utilisateur de jquery-plugin et ne peut pas vraiment comprendre lequel de ces méthodes à utiliser.
Selon le jquery ui documentation que je devrais utiliser _trigger pour déclencher les événements, ce qui permet aux gestionnaires afin d'être initialisé avec le plugin comme
$("#id").pluginname({
click: function(){
//called when clicked
}
});
Mais si plus tard, je veux attacher plus d'auditeurs pour cet événement, je ne peux pas trouver un moyen de le faire.
Je suis en train d'utiliser jquery lier, mais qui ne fonctionne pas.
exemple:
$("#id").bind("click", function(){
//This does not get fired on click if using _trigger
})
La seule solution que j'ai pour l'instant est à l'incendie de deux, mais il se sent un peu étrange.
Mon code doit faire l':
$("#id").pluginname({
click: function(){
//called when my plugin uses this._trigger('click')
}
}).bind(function(){
//called when my plugin uses this.element.trigger('click')
});
Je suis en utilisant des événements, mais ne pense pas que c'est une question pertinente pour cette question.
Quelqu'un a une idée sur la façon d'utiliser l'événement de chaînage lors de l'utilisation de _trigger()?
OriginalL'auteur Tommy | 2011-08-05
Vous devez vous connecter pour publier un commentaire.
Vous devez lier comme ceci:
hmm. Désolé, ne me souviens pas de tout. Essayez cette - erichynds.com/jquery/tips-for-developing-jquery-ui-widgets (de la recherche pour "dialogopen")
Salut, Merci pour votre réponse. heureusement, j'ai découvert un commentaire sur une page qui dit que le nom de l'événement a été transformé en minuscules. Mon exemple dans ce cas n'a pas pris j'ai eu un cas avec camel cas nom. Mais cela signifie que votre suggestion est correct. Merci beaucoup de m'aider à ce sujet.
oui, everythig est dans minuscules. si votre exemple de widget aurait camelcase nom, je tiens à souligner. vous pouvez également déclencher comme
me.element.trigger( 'click.MyWidget' )
et dans ce cas, vous devez lier les$("#id").bind("click.MyWidget", ...
OriginalL'auteur bullgare
vous devez utiliser
this._on
etthis._trigger
pour ce faire, de sorte que les événements se laver op lors de la destruction du widget.sinon, vous devez séparer les événements vous-même ou sinon le widget n'a pas nettoyés par le nettoyage de la mémoire du navigateur
espère que cela répond à votre question
OriginalL'auteur borrel