js如何实现模拟监听事件
2012-12-27 11:26
447 查看
function Animal(name) {
this.name = name;
this.getName = function() {
return
this.name;
}
this.setName = function(name) {
this.name =
name;
this._valueChangeHandler('name');
}
}
Animal.prototype = {
onChange: function(valueName,
fun) {
this["_" + valueName + "ChangeHandlers"] = this["_" + valueName +
"ChangeHandlers"] || [];
this["_" + valueName + "ChangeHandlers"].push(fun);
},
_valueChangeHandler:
function(valueName) {
var o = this["_" + valueName + "ChangeHandlers"];
if (o) {
for (var i = 0, n = o.length; i < n; i++) {
var methodName = "get" + valueName.charAt(0).toUpperCase() +
valueName.slice(1);
o[i](this[methodName]());
}
}
}
}
var a = new Animal('zhangsan');
a.onChange('name', function(o) {
console.log("1.my name is " + o);
});
a.onChange('name', function(o) {
console.log("2.my name is " + o);
});
a.setName("zhangsanfeng");
this.name = name;
this.getName = function() {
return
this.name;
}
this.setName = function(name) {
this.name =
name;
this._valueChangeHandler('name');
}
}
Animal.prototype = {
onChange: function(valueName,
fun) {
this["_" + valueName + "ChangeHandlers"] = this["_" + valueName +
"ChangeHandlers"] || [];
this["_" + valueName + "ChangeHandlers"].push(fun);
},
_valueChangeHandler:
function(valueName) {
var o = this["_" + valueName + "ChangeHandlers"];
if (o) {
for (var i = 0, n = o.length; i < n; i++) {
var methodName = "get" + valueName.charAt(0).toUpperCase() +
valueName.slice(1);
o[i](this[methodName]());
}
}
}
}
var a = new Animal('zhangsan');
a.onChange('name', function(o) {
console.log("1.my name is " + o);
});
a.onChange('name', function(o) {
console.log("2.my name is " + o);
});
a.setName("zhangsanfeng");
function Animal(name) { this.name = name; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; this._valueChangeHandler('name'); } } Animal.prototype = { onChange: function(valueName, fun) { this["_" + valueName + "ChangeHandlers"] = this["_" + valueName + "ChangeHandlers"] || []; this["_" + valueName + "ChangeHandlers"].push(fun); }, _valueChangeHandler: function(valueName) { var o = this["_" + valueName + "ChangeHandlers"]; if (o) { for (var i = 0, n = o.length; i < n; i++) { var methodName = "get" + valueName.charAt(0).toUpperCase() + valueName.slice(1); o[i](this[methodName]()); } } } } var a = new Animal('zhangsan'); a.onChange('name', function(o) { console.log("1.my name is " + o); }); a.onChange('name', function(o) { console.log("2.my name is " + o); }); a.setName("zhangsanfeng");function Animal(name) { this.name = name; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; this._valueChangeHandler('name'); } } Animal.prototype = { onChange: function(valueName, fun) { this["_" + valueName + "ChangeHandlers"] = this["_" + valueName + "ChangeHandlers"] || []; this["_" + valueName + "ChangeHandlers"].push(fun); }, _valueChangeHandler: function(valueName) { var o = this["_" + valueName + "ChangeHandlers"]; if (o) { for (var i = 0, n = o.length; i < n; i++) { var methodName = "get" + valueName.charAt(0).toUpperCase() + valueName.slice(1); o[i](this[methodName]()); } } } } var a = new Animal('zhangsan'); a.onChange('name', function(o) { console.log("1.my name is " + o); }); a.onChange('name', function(o) { console.log("2.my name is " + o); }); a.setName("zhangsanfeng");function Animal(name) { this.name = name; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; this._valueChangeHandler('name'); } } Animal.prototype = { onChange: function(valueName, fun) { this["_" + valueName + "ChangeHandlers"] = this["_" + valueName + "ChangeHandlers"] || []; this["_" + valueName + "ChangeHandlers"].push(fun); }, _valueChangeHandler: function(valueName) { var o = this["_" + valueName + "ChangeHandlers"]; if (o) { for (var i = 0, n = o.length; i < n; i++) { var methodName = "get" + valueName.charAt(0).toUpperCase() + valueName.slice(1); o[i](this[methodName]()); } } } } var a = new Animal('zhangsan'); a.onChange('name', function(o) { console.log("1.my name is " + o); }); a.onChange('name', function(o) { console.log("2.my name is " + o); }); a.setName("zhangsanfeng");
function Animal(name) { this.name = name; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; this._valueChangeHandler('name'); } } Animal.prototype = { onChange: function(valueName, fun) { this["_" + valueName + "ChangeHandlers"] = this["_" + valueName + "ChangeHandlers"] || []; this["_" + valueName + "ChangeHandlers"].push(fun); }, _valueChangeHandler: function(valueName) { var o = this["_" + valueName + "ChangeHandlers"]; if (o) { for (var i = 0, n = o.length; i < n; i++) { var methodName = "get" + valueName.charAt(0).toUpperCase() + valueName.slice(1); o[i](this[methodName]()); } } } } var a = new Animal('zhangsan'); a.onChange('name', function(o) { console.log("1.my name is " + o); }); a.onChange('name', function(o) { console.log("2.my name is " + o); }); a.setName("zhangsanfeng");function Animal(name) { this.name = name; this.getName = function() { return this.name; } this.setName = function(name) { this.name = name; this._valueChangeHandler('name'); } } Animal.prototype = { onChange: function(valueName, fun) { this["_" + valueName + "ChangeHandlers"] = this["_" + valueName + "ChangeHandlers"] || []; this["_" + valueName + "ChangeHandlers"].push(fun); }, _valueChangeHandler: function(valueName) { var o = this["_" + valueName + "ChangeHandlers"]; if (o) { for (var i = 0, n = o.length; i < n; i++) { var methodName = "get" + valueName.charAt(0).toUpperCase() + valueName.slice(1); o[i](this[methodName]()); } } } } var a = new Animal('zhangsan'); a.onChange('name', function(o) { console.log("1.my name is " + o); }); a.onChange('name', function(o) { console.log("2.my name is " + o); }); a.setName("zhangsanfeng");
相关文章推荐
- JS实现监听事件,添加删除显示控件
- js模拟点击事件实现代码
- js如何给页面中所有的img对象加上onclick事件,且实现在新窗体中查看该图片文件
- js实现监听button按钮点击事件触发file点击事件
- js和jquery实现监听键盘事件示例代码
- Vue.js实战之通过监听滚动事件实现动态锚点
- js如何监听滚动条滚动事件,使得某个标签内容始终位于同一位置
- js---JavaScript中的事件委托/事件代理,如何通过事件委托进行异步DOM事件监听
- js实现监听手机滑动到底部触发事件
- js模拟长按事件的实现方式
- js和jquery实现监听键盘事件示例代码
- 前端动画渲染引擎pixi.js系列(4)如何实现鼠标交互事件
- js-模拟easyui-datagrid表格各行选中事件-实现逻辑
- js和jquery实现监听键盘事件示例代码
- 如何为js控件添加事件监听
- Android软键盘(六)如何监听到软件盘显示与隐藏的事件,完美实现登录界面
- js模拟点击事件实现代码
- JS中的onload事件和jQuery中的ready事件,如何用JS实现jQuery中的ready
- js模拟点击事件实现代码
- js实现滑动触屏事件监听的方法