Zastanawiałem się, jak programowo ognia zdarzenie zmienia się z YUI3 - dodałem słuchacza Przejdź do jednego węzła wybierz nadwozia:YUI 3 programowo zmiana pożar zdarzenie
Y.get('#mynode').on('change', function(e) {
Alert(“changed me”);
});
i gdzie indziej w skrypcie chce odpalić to wydarzenie. Działa to oczywiście, gdy użytkownik zmienia wartość pola wyboru w przeglądarce. Ale próbowałem na wiele sposobów, aby uruchomić programowo, z których żaden nie działa. W tym:
// 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');
Każda pomoc będzie doceniona!
Po prostu notatka: Musisz Y.use ("zdarzenie-symulator zdarzenia", ...), aby funkcja .simulate() była dostępna. – thenickdude