您好我在网上找到了这个脚本,它为一个元素添加了一个onChange事件,我想现在向同一个元素添加第二个onChange事件。继承剧本:
document.getElementById('piname').onchange =
function() {
removeChildren({
parentId: 'account_table',
childName: 'extraaccount'
});
}
我要添加的onChange事件是:
showAccount(this.value)
答案 0 :(得分:5)
如果需要,请使用addEventListener()
(和attachEvent
作为后备广告。)
例如:
document.getElementById('piname').addEventListener("change", function(e){
e = e || event;
showAccount(e.target.value);
}, false);
示例,有后备:
var element = document.getElementById('piname');
if(element.addEventListener){
element.addEventListener("change", function(e){
e = e || event;
showAccount(e.target.value);
}, false);
}
else if(element.attachEvent){
element.attachEvent("onchange", function(e){
e = e || event;
showAccount(e.target.value);
});
}
答案 1 :(得分:2)
最简单的方法是缓存旧函数并从新函数中调用它:
var el = document.getElementById('piname'),
old = el.onchange;
el.onchange = function () {
old.call(el);
showAccount(this.value);
}
除此之外,您可以使用addEventListener
(W3C标准)和attachEvent
(IE8及更低版本):
var el = document.getElementById('piname'),
fn = function (e) {
e = e || window.event;
showAccount((e.target || e.srcElement).value);
};
if ("addEventListener" in el) {
el.addEventListener("change", fn, false);
}
else {
el.attachEvent("onchange", fn);
}
这些方法允许您根据需要为事件附加尽可能多的处理程序。