2011-02-12 79 views
1

我需要阻止IE識別插件中的淡入/淡出效果。我如何添加一行jQuery的功能檢測代碼這樣:jquery特徵檢測 - 我該如何實現這一點?

$(function() { 

var newHash  = "", 
    $mainContent = $("#main-content"), 
    $pageWrap = $("#page-wrap"), 
    baseHeight = 0, 
    $el; 



$("nav#footer").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    return false; 
}); 

$(window).bind('hashchange', function(){ 

    newHash = window.location.hash.substring(1); 

    if (newHash) { 
     $mainContent 
      .find("#guts") 
      .fadeOut(200, function() { 
       $mainContent.show().load(newHash + " #guts", function() { 
        $mainContent.fadeIn(200, function() { 
        }); 
        $("nav#footer a").removeClass("current"); 
        $("nav#footer a[href="+newHash+"]").addClass("current"); 
       }); 
      }); 
    }; 

}); 

$(window).trigger('hashchange'); 

}); 

我有一個像

var FADE_TIME = 500; if(!($.support.opacity)) { FADE_TIME = 0} 

$('element').fadeOut(FADE_TIME) 

一些代碼,我會在哪裏添加此代碼?有人能幫助我實現這個目標嗎?請!

+0

老實說。我需要做的就是將support.opacity代碼添加到它上面的插件中。有人與jQuery知識請幫助我:( – iamwhitebox 2011-02-12 05:28:00

回答

1

無法弄清楚爲什麼有人不編輯代碼並回答問題。 您需要做的只是創建一個新的變量,其值由$ .support.Opacity屬性確定,然後在代碼的淡入/淡出部分中引用該值。

$(function() { 

var newHash  = "", 
    $mainContent = $("#main-content"), 
    $pageWrap = $("#page-wrap"), 
    baseHeight = 0, 
    $el, 
    // new fadeTime property. 
    fadeTime = $.support.opacity ? 500 : 0; 



$("nav#footer").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    return false; 
}); 

$(window).bind('hashchange', function(){ 

    newHash = window.location.hash.substring(1); 

    if (newHash) { 
     $mainContent 
      .find("#guts") 
      .fadeOut(fadeTime, function() { 
       $mainContent.show().load(newHash + " #guts", function() { 
        $mainContent.fadeIn(fadeTime, function() { 
        }); 
        $("nav#footer a").removeClass("current"); 
        $("nav#footer a[href="+newHash+"]").addClass("current"); 
       }); 
      }); 
    }; 

}); 

$(window).trigger('hashchange'); 

}); 
0

你只是想運行一些東西,如果用戶不使用Internet Explorer?

試試這個:

if ($.browser.msie) { 
    return false; 
} else { 
    //do something 
} 
+1

`$ .browser.msie`可能不可靠,請考慮使用功能檢測。請參閱文檔http://api.jquery.com/jQuery.browser/ – limc 2011-02-12 02:38:16

+0

不,我知道我需要使用功能檢測,但我怎麼才能將我粘貼在頂部的代碼行添加到我的插件?????? – iamwhitebox 2011-02-12 03:20:31

-1

我相信你說的支持,爲CSS opacity財產,而不是輕微越野車-ms-filterfilter其中IE8及以下使用。在這種情況下,最好的方法是在元素的style對象,以測試屬性是否存在:

if('opacity' in document.createElement('div').style) { 
    // Do something that requires native opacity support 
} 

(您可能想,如果你想測試多種性能有緩存測試元件)