代码如下
<script type="text/javascript">
YUI().use('event-custom', 'attribute', 'node', function(Y) { //应用attribute模块
function Connector(url) {
(function structure() { //()()充当Connector的构造子,让new Connector()时直接执行
Y.augment(Connector, Y.EventTarget);
Y.augment(Connector, Y.Attribute); //属性设置
this.url = url;
})();
this.publish("evnet:testEvent");
// 属性配置信息,此处配置了url 、data两个属性
var attris = {
url : {
value : "" //单属性值
},
data : {
value : {} //对象属性
}
};
this.addAttrs(attris); //给Connectort添加属性
this.accept = function() { //set属性
this.set("data",{
protocolx:"http",
portx:"8080",
aptDatax:"123456"
}
);
this.set("url","http://xxxxxxxxxxxxxxxxx");
this.fire("event:testEvent", {
target : this
}); //发布事件
};
}
var p = new Connector("http://xxxx"); //实例化
p.on("event:testEvent", function(e) { //监听事件
var obj = e.target.get("data");
//get出属性
alert(e.target.get("data").protocolx+","+obj.aptDatax+","+e.target.get("url"));
});
p.accept(); //调用方法,触发事件
p.set("url","再玩一下!")
alert(p.get("url"));
});
</script>