2011-08-19 92 views
0

由於IE 7不支持disabled屬性,我使用jQuery向change事件添加事件處理程序,該事件檢查select和設置css上是否存在disabled屬性禁用選項上的colorgrey在IE7(jquery)中選擇單擊事件問題

但是,只要我點擊下拉菜單,它就會首先關閉我的下拉菜單,然後用灰色重新繪製新下拉菜單。

這裏是我的代碼:

(function($) { 

    $('select').change(function() { 
     if (this.options[this.selectedIndex].disabled) { 
      if (this.options.length == 0) { 
       this.selectedIndex = -1; 
      } else { 
       this.selectedIndex--; 
      } 
      //$(this).trigger('change'); 
     } 
    }); 
    $('select').each(function(it) { 
     if (this.options[this.selectedIndex].disabled) { 
      this.onchange(); 
     } 
    }); 

    $('select').click(function(e) { 
     //e.stopPropagation(); 
     $(this).find('option[disabled]').css({ 
      'color': '#cccccc' 
     }); 
    }); 

})(jQuery); 
+0

您可以請檢查修改後的問題仍然捕獲您原來的問題。 – Matt

+0

這是真的在怪癖和符合標準的模式?你有沒有試過'disabled =「disabled」'(XHTML)的選擇? (我還沒有使用IE瀏覽器一段時間,所以這些可能是愚蠢的問題...) –

+0

感謝編輯是的,它仍然捕獲我的問題 – Amit

回答

0

看看這個例子中,我爲你做的: http://jsfiddle.net/auNVE/

它應該給你足夠的信息,以便進一步發展!

祝你好運!


編輯
mousedown有編輯
更多信息
http://jsfiddle.net/auNVE/1/


現在,而不是以後 更新click
http://jsfiddle.net/auNVE/2/

+0

感謝您的代碼工作在靜態下拉列表,但我的下拉列表是動態生成禁用屬性on落下。 – Amit

+0

這裏是compelet scenrio。 – Amit

+0

我有5個下拉菜單。如果用戶從第一個下拉列表中選擇任何值,則其他下拉用戶無法在其他下拉列表中選擇相同的值。 – Amit