この記事が役立つかもしれません。次のようなトリックを使用します。
// 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 関数を使用する際の問題です。もう1つの解決策は、ドロップダウンの値を時々チェックし、変更された場合は 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の方法もあります