这篇文章可能会对你有所帮助。它使用这样的技巧:
// executes an onchange function after 750ms (or specified delay)
function safeOnChange1( code, delay ) {
delay = delay || 750;
window.clearTimeout( soc_id );
soc_id = window.setTimeout( code, delay );
}
// global timer ID for the safeOnChange1 function.
var soc_id = null;
这并不漂亮,但这就是在下拉菜单上使用 onchange 函数的问题。另一种解决方案是每隔一段时间检查下拉列表的值并在它发生更改时调用 onchange 函数的函数。
查找这样的教程:http: //onlinetools.org/articles/unobtrusivejavascript/chapter4.html
function addEvent(obj, evType, fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
return false;
}
}
addEvent(window, 'load', foo);
addEvent(window, 'load', bar);
如果您可以查找它,还有一种 jquery 方式