2009年12月1日 星期二

讓 IE 支持 option 中的onclick 事件

做了一個小功能,在 select 下拉選單中,選到一個 option 會觸發一個 javascript 事件

後來發現這個功能在 ie 上並不支持,果然 google 一下答案就出來了

http://hudeyong926.javaeye.com/blog/464991

最主要的就是

function simOptionClick4IE(){
var evt=window.event ;
var selectObj=evt?evt.srcElement:null;
// IE Only
if (evt && selectObj && evt.offsetY && evt.button!=2
&& (evt.offsetY > selectObj.offsetHeight || evt.offsetY<0 ) ) {

// 记录原先的选中项
var oldIdx = selectObj.selectedIndex;

setTimeout(function(){
var option=selectObj.options[selectObj.selectedIndex];
// 此时可以通过判断 oldIdx 是否等于 selectObj.selectedIndex
// 来判断用户是不是点击了同一个选项,进而做不同的处理.
function(option.value);
//^^^^上面是要執行的function name,option value就是接選項的執
}, 60);
}
}

//在html的select code則是像這樣


那個 onclick 寫著只是讓 FF 這種比較聰明的能懂,而 value="4" 是要自己再加上去給 IE 懂的

然後在 select 那邊要補上 onclick,這樣這個 function 事件就會被這個下拉式選單給觸發了

沒有留言: