YUI 3 événement de changement de programme par programmation
Je me demandais comment par programmation incendie d'un événement de changement avec YUI3 -- j'ai ajouté un changement écouteur à une boîte de sélection d'un nœud:
Y.get('#mynode').on('change', function(e) {
Alert(“changed me”);
});
et ailleurs dans le script que vous voulez tirer de cet événement. Il fonctionne, bien sûr, lorsqu'un utilisateur modifie la boîte de sélection de la valeur dans le navigateur. Mais j'ai essayé de nombreuses façons de tirer de la programmation, aucun n'a fonctionné. Y compris:
//All below give this error: T[X] is not a function (referring to what's called in .invoke(), //in the minified javascript
Y.get('#mynode').invoke('onchange');
Y.get('#mynode').invoke('change');
Y.get('#mynode').invoke('on','change');
Y.get('#mynode').invoke("on('change')");
/* Tried using .fire() which I found here:
* http://developer.yahoo.com/yui/3/api/EventTarget.html#method_fire
* Nothing happens
*/
Y.get('#mynode').fire('change');
/* Looking around the APIs some more, I found node-event-simulate.js:
* http://developer.yahoo.com/yui/3/api/node-event-simulate.js.html,
* which by its name would seem to have what I want. I tried:
* Error: simulate(): Event 'change' can't be simulated.
* ( (function(){var I={},B=new Date().getTim...if(B.isObject(G)){if(B.isArray(G)){E=1;\n)
*/
Y.get('#mynode').simulate('change');
Toute aide serait appréciée!
source d'informationauteur ash
Vous devez vous connecter pour publier un commentaire.
YUI 3.0 ne prend pas en charge la simulation de la
change
événements, comme vous l'avez découvert. Toutefois, il sera pris en charge dans YUI 3.1. Il est dans le coffre maintenant.Votre troisième tentative:
devraient travailler en 3.1.
modifier
Il semble que vous pouvez juste remplacer le YUI version 3.0 de
event-simulate.js
avec le tronc version, et il va travailler dans un 3.0 app. Je n'ai pas vu de problèmes jusqu'à présent.La solution habituelle est pas de programmation pour déclencher l'événement, mais plutôt de déplacer toute la logique de l'événement à une fonction, et au lieu d'appeler cette fonction à partir de votre code, le cas échéant.
Comment à ce sujet