我正在尝试为具有两个不同功能的标记(onchange
)添加两个事件<select>
。
以下是代码的一部分:
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);
所以我有这两个功能,并希望一旦有人从列表中选择一个选项就可以执行这两个功能。 我知道两种可能的方式:
onblur
第一个对我来说根本不起作用,第二个现在只有好处。那还有其他方法吗?
非常感谢。
答案 0 :(得分:2)
您可以将这两个功能添加到onchange
事件
slct.addEventListener('change', prcTypCh);
slct.addEventListener('change', statBar);
或者你可以让你当前的onchange
函数只是一个调用这两个函数的处理程序
slct.onchange = myOnChangeHandler;
function myOnChangeHandler(){
prcTypCh();
statBar();
}
另外,如果可以在您的情况下进行,我建议您使用jQuery或其他abstraction framework从您的盘子上取下一些肮脏的工作。这样你就可以做到这样的事情:
$(slct).on("change", function(){
prcTypCh();
statBar();
});
答案 1 :(得分:0)
您可以使用addEventListener
:
slct.addEventListener('change', prcTypCh, false);
slct.addEventListener('change', statBar, false);
(如上所述,如果您的目标是IE&lt; 9,则需要有条件地使用attachEvent
。为此,您应该考虑使用类似jQuery的库来涵盖各种浏览器实现。)< / p>