<html>
<head></head>
<script src="./yui/build/yui/yui-min.js"></script>
<script type="text/javascript">
YUI().use('node-event-simulate', 'base', function(Y) {
Y.log('test1');
var Module1 = function(){
Module1.superclass.constructor.call(this);
this.publish('change', {
emitFacade : true, /*true表示可以用一个对象来触发事件,如下的Module2*/
broadcast : 2 /*默认0只能在该方法内被触发,1表示在该沙箱内,2表示可以在不同沙箱内*/
})
}
Module1.NAME = 'm1';
Y.extend(Module1, Y.Base);
var m = new Module1();
Y.one('#button1').on('click', function(e, module){
Y.log('button1 clicked!');
module.fire('change', 'hello');
}, this, m)
});
</script>
<script type="text/javascript">
YUI().use('node-event-simulate', 'base', function(Y) {
Y.log('test2');
function Module2(){
Module2.superclass.constructor.call(this);
}
Y.extend(Module2, Y.Base, {
update:function(args){
Y.log("Module2 knowns Module1's change :"+args);
}
});
var m = new Module2();
Y.Global.on('m1:change', function(e, args, module){
module.update(args);
}, this, m)
});
</script>
<body>
<div id="demo">
<ul>
<li><a href="#foo">foo</a></li>
<li><a href="#bar">bar</a></li>
<li><a href="#baz">baz</a></li>
</ul>
<div>
<div id="foo">
<p>foo content</p>
</div>
<div id="bar">
<p>bar content</p>
</div>
<div id="baz">
<p>baz content</p>
</div>
</div>
<input type="button" id="button1" value="click me!"/>
</div>
</body>
</html>