在2个公用的JS里面, 对一个文本框 都监听了同一个事件(比如onclick) , 所以后面执行的替换掉了前面的。
怎么写才不会替换掉? 达到叠加的作用:2个时间的函数都能执行??? ; 条件是:不能把一个事件的函数移到另一个里面, 因为可能另一个别人要用;
怎么写才不会替换掉? 达到叠加的作用:2个时间的函数都能执行??? ; 条件是:不能把一个事件的函数移到另一个里面, 因为可能另一个别人要用;
调试欢乐多
JQ , bind("click", fn)
//attachEvent
或者用
var obj = document.getElementBuId('xxx');
var oldev = obj.onclick();
obj.onclick = function(e){
//新事件代码
if(oldev) oldev.call(this,e);
}
var oldev = obj.onclick;
obj.onclick = function(e){
//新事件代码
if(oldev) oldev.call(this,e);
}
addEventListener IE用不了, 对象为空
attachEvent this无法指向事件源
用jquery bind("click", fn) 就不会替换么??
用jquery bind("click", fn) 就不会替换么??
是的
不用JQ:
IE htmlObj.attachEvent("onclick", fn)
非IE htmlObj.addEventListener("click",fn, false);
addEventListener IE用不了, 对象为空
attachEvent this无法指向事件源
判断呀
function addEvent (obj,type,fn){
if(!obj)return null;
if(obj.addEventListener){
obj.addEventListener(type,function(event){
var rtn = fn.call(obj,event);
if(rtn==false){
event.cancelBubble = true;
event.preventDefault();
}
},false)
}else {
obj.attachEvent('on'+type,function(){
var rtn = fn.call(obj,window.event);
if(rtn==false){
window.event.cancelBubble = true;
return false;
}
})
}
}
attachEvent