2010-06-02 21 views
2

我有一個jQuery的功能,導致在IE7顯示錯誤。我只是想禁用IE7的功能,而不是處理修復顯示錯誤。如何禁用IE7中的jQuery函數?

這裏是調用該函數的代碼:

$(document).ready(function() { 
    $("select, input:checkbox, input:radio, input:file").uniform(); 
}); 

那麼,什麼是定位到該標註,同時禁用僅IE7的最佳做法?

+0

也許http://api.jquery.com/jQuery.support/。使用jQuery.support測試瀏覽器。請參閱http://stackoverflow.com/questions/584285/detecting-ie6-using-jquery-support – subv3rsion 2010-06-02 19:41:00

回答

12

jQuery.browser允許您查看用戶代理版本,儘管jQuery團隊不推薦這樣做。相反,請查看jQuery.support,建議您使用'功能檢測'來確定您正在使用的瀏覽器。

使用$ .browser,像(未測試):

if (!($.browser.msie && $.browser.version == 7.0)){ 
... 
} 

會做的伎倆

+0

我認爲邏輯會拒絕任何IE,而不僅僅是7?嘗試如果(!($。browser.msie && $ .browser.version == 7.0)){... – Ryley 2010-06-02 19:54:51

+0

良好的通話,使得一個很快...固定 – brad 2010-06-02 20:45:36

+0

這是很好的信息。我想我甚至可能需要再次強調要在該語句中放置什麼來禁用該功能。任何想法,我對這個想法都很新鮮...... – Adam 2010-06-02 22:40:42

2

這是從來沒有的樂趣,但是這將工作...

<!--[if IE 7]> 
<script type="text/javascript"> 
    $.fn.uniform = function() { } 
</script> 
<![endif]--> 

瀏覽器通過Javascript檢測是不可靠的,但這應該是因爲它是一個有效的標記註釋,IE是唯一瀏覽器(我知道)嗅探它。