Javascript 动态创建的标记上的两个onchange事件

Javascript 动态创建的标记上的两个onchange事件,javascript,Javascript,我正在尝试为具有两个不同函数的标记()添加两个事件onchange。 以下是代码的一部分: var slct=document.createElement("select"); slct.id="tskSlk_"+idN; for (var i = 0; i < opt.length; i++) { var objOpt=document.createElement("option"); ob

我正在尝试为具有两个不同函数的标记(
)添加两个事件
onchange
。 以下是代码的一部分:

        var slct=document.createElement("select"); 
        slct.id="tskSlk_"+idN;
        for (var i = 0; i < opt.length; i++) {
            var objOpt=document.createElement("option");
            objOpt.text=opt[i];
            slct.appendChild(objOpt);
        };
        slct.onchange=prcTypCh;
        slct.onchange=statBar;
        tsks.appendChild(slct);
var slct=document.createElement(“选择”);
slct.id=“tskSlk_u2;”+idN;
对于(变量i=0;i
因此,我有这两个功能,并希望在有人从列表中选择一个选项后执行这两个功能。 我知道两种可能的方法:

  • 将其中一个设置为
    onblur
  • 从第一个函数调用第二个函数
  • 第一个对我来说根本不起作用,第二个只对现在有用。那么还有别的办法吗


    非常感谢。

    您可以使用
    addEventListener

    slct.addEventListener('change', prcTypCh, false);
    slct.addEventListener('change', statBar, false);
    

    (如前所述,如果您的目标是IE<9,则需要有条件地使用<代码> AutoGebug < /代码>。为此,您应该考虑使用像jQuery这样的库来覆盖各种浏览器实现。”

    < P>您可以将这两个函数添加到<代码> OnChchange < /Cord>事件

    slct.addEventListener('change', prcTypCh);
    slct.addEventListener('change', statBar);
    
    或者,您可以将当前的
    onchange
    函数设置为调用这两个函数的处理程序

    slct.onchange = myOnChangeHandler;
    
    function myOnChangeHandler(){
        prcTypCh();
        statBar();
    }
    
    如果可能的话,在你的情况下,我会建议使用或其他方法来减少你盘子里的脏活。这样你就可以做这样的事情:

    $(slct).on("change", function(){
        prcTypCh();
        statBar();
    });
    

    我认为这将回答您的问题:您必须使用
    addEventListener
    attachEvent
    (取决于您的浏览器)绑定多个事件处理程序。或者,绑定到一个调用其他两个函数的函数。请注意,这在IE中不起作用。jQuery对我来说非常适合,这是一个聪明的解决方法。谢谢