Why isn't my event fired in foo
bubbling up to bar
?
var foo = Y.one(".foo"),
bar = Y.one(".bar");
foo.addTarget(bar);
foo.on("myEvent", function () {
//this log statement executes
Y.log("In foo listener");
});
bar.on("myEvent", function () {
//this log statement doesn't execute.
//I don't understand why. I think it
//should because I expect myEvent to
//bubble from foo to bar since I used
//addTarget
Y.log("In bar listener");
});
foo.fire("myEvent");
JS Fiddle: http://jsfiddle.net/steaks/tJnLf/
You have to publish myEvent
from foo
and set emitFacade
to true
. http://yuilibrary.com/yui/docs/event-custom/#facade
YUI().use('event-custom', 'node', function(Y) {
Y.on('domready',function(e) {
var foo = Y.one(".foo"),
bar = Y.one(".bar");
foo.publish("myEvent", {
emitFacade: true
});
foo.addTarget(bar);
foo.on("myEvent", function () {
Y.log("In foo listener");
});
bar.on("myEvent", function () {
Y.log("In bar listener");
});
foo.fire("myEvent");
});
});