YUI3:我如何触发事件?

时间:2013-10-14 15:04:35

标签: javascript yui yui3

假设我在链接/按钮/等上有点击事件。

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

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

页面上还有其他内容要我触发此按钮上的点击事件。我该怎么做?

我看到了YUI3的fire()方法,但它看起来像是为自定义事件而设计的。如果我应该使用fire(),那么myButton.fire('click')会工作吗?

(我正在寻找相当于jQuery的.trigger()方法,该方法适用于DOM事件或自定义事件。)

2 个答案:

答案 0 :(得分:3)

如果您在yui3中寻找等效的触发器,可以尝试使用'simulate'

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

要使上述语句起作用,您需要在使用方法中添加“node-event-simulate”汇总。

答案 1 :(得分:2)

您真的需要触发按钮上的点击事件吗?使用下面的HTML

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

您可以利用自定义事件将真实逻辑置于中心位置。

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")})
});

小提琴:http://jsfiddle.net/WZZmR/