跟踪input值改变的兼容处理
兼容处理input控件值改变事件
兼容处理 @ IE,FireFox,Opera,Netscape 手动输入事件捕获:手动输入内容时会触发
复制粘贴事件捕获:复制粘贴内容时会触发
程序设置事件捕获:javascript程序动态设置内容时会触发
拖入事件捕获:选定内容拖入时会触发
一些遗憾:WEBKIT内核浏览器(Safari,Chrome等)尚未兼容第3点:程序设置事件捕获;
第4点,拖入事件捕获用的是onmousemove处理的,如果绑定函数中有alert,将会灰常杯具 - -!
欢迎讨论。
兼容代码:
JScript code
var easychange = function(foochange){
if(!foochange||foochange.constructor!=Function){return;}
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
this.setAttribute('oninput','('+foochange.toString()+')(this.value)');
this.onpropertychange = function(){foochange(this.value);};
this.onmousemove = function(){foochange(this.value);};
this.onkeyup = function(){foochange(this.value);};
};
调用示例:
JScript code
var dx = document.getElementById('x');
easychange.call(dx,function(newvalue){document.title = newvalue;});
------解决方案--------------------jf
------解决方案--------------------什么意思?
------解决方案--------------------UP
------解决方案--------------------支持
------解决方案--------------------呵呵 up
------解决方案--------------------jf
------解决方案--------------------楼主很有厉害,我以前有这想法,可没那勇气,嘿嘿!
------解决方案--------------------不会但支持一下啊!
------解决方案--------------------顶 支持
------解决方案--------------------支持
------解决方案--------------------up
------解决方案--------------------学习···
------解决方案--------------------我愣是没看明白,
try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
这个this.watch是干嘛的
------解决方案--------------------UP,学习~~~~~~~~~~~
------解决方案--------------------学习···
------解决方案--------------------貌似这样调用很危险
JScript code
var dx = document.getElementById('x');
easychange.call(dx,(function(){return function(newvalue){dx.value="xxxx"+dx.value}})(dx));
------解决方案--------------------
支持,谢谢~~
------解决方案--------------------
或者
easychange.call(o,(function(){return function(newvalue){o.value="name:"+newvalue}})(o));