簡體   English   中英

添加第二個onChange事件?

[英]Add a second onChange event?

嗨,我在網上找到了這個腳本,它將一個onChange事件添加到一個元素中,我現在想在同一個元素中添加第二個onChange事件。 繼承人腳本:

document.getElementById('piname').onchange =
function() {
    removeChildren({
        parentId: 'account_table',
        childName: 'extraaccount'
    });
}

我要添加的onChange事件是:

showAccount(this.value)

如果需要,使用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);
  });
}

最簡單的方法是緩存舊函數並從新函數中調用它:

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);
}

這些方法允許您根據需要將多個處理程序附加到事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM