简体   繁体   中英

YUI3: How would I trigger an event?

Suppose I have a click event on a link/button/etc.

var myButton = Y.one('.button');

myButton.on('click', function() {
   // code
});

There is something else happening on the page that I want to trigger a click event on this button. How would I do this?

I saw YUI3's fire() method, but it looked like that was designed for custom events. If I am supposed to use fire(), then will myButton.fire('click') work?

(I'm looking for the equivalent of jQuery's .trigger() method, which works on DOM events or custom events.)

If you are looking for equivalent of trigger in yui3 you can try using the 'simulate'

Y.one('button selector').simulate('click');

For the above statement to work you will need to add "node-event-simulate" roll up in the use method.

Do you really need to trigger the click event on the button? Take the HTML below

    <button id="myButton">Click Me</button>
<br>
    <a href="#">Click Me</a>

You can make use of the custom events to put the real logic somewhere central.

YUI().use("node","event",function(Y){
    Y.one("#myButton").on("click",function(){Y.fire("custom:doThing")});
    Y.all("a").on("click",function(){Y.fire("custom:doThing")});
    Y.on("custom:doThing",function(){console.log("Do my thing, regardless of event source")})
});

Fiddle: http://jsfiddle.net/WZZmR/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM