Обнаружение функции jquery - как я могу реализовать это? - PullRequest
1 голос
/ 12 февраля 2011

Мне нужно, чтобы IE не распознал эффект fadeIn / Out в этом плагине. Как я могу добавить строку кода обнаружения функции 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)

Куда бы я добавил это в коде? Может ли кто-нибудь помочь мне заставить это работать по-настоящему? Пожалуйста!

Ответы [ 3 ]

1 голос
/ 10 марта 2011

Не могу понять, почему кто-то просто не отредактировал код и не ответил на вопрос.Все, что вам нужно было сделать, - это создать новую переменную, значение которой определяется свойством $ .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 голосов
/ 12 февраля 2011

Полагаю, вы говорите о поддержке свойства CSS opacity, а не о слегка глючных -ms-filter и filter, которые использует IE8 и ниже. В этом случае наилучшим методом будет проверка наличия свойства в объекте style элемента:

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

(Вы можете кэшировать тестовый элемент там, если хотите протестировать несколько свойств)

0 голосов
/ 12 февраля 2011

Вы просто хотите что-то запустить, если пользователь не использует Internet Explorer?

Попробуйте это:

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