JQuery Fade работает в IE, а не в Chrome - PullRequest
1 голос
/ 08 октября 2009

Я просмотрел переполнение стека и не смог найти ответ. У меня есть следующий код, который затухает элемент, отправляет информацию на сервер, и когда он получен, он возвращает его обратно. Он отлично работает в IE. Не работает в хроме. Данные вызываются на сервер, но реальные эффекты затухания не работают.

function getChannelIndexFilter(channelName, filterType) {
        $("#videoList").fadeOut("fast", function() {
            $.get("/Home/GetChannelIndexFilter", 
                { channel: channelName, type: filterType },
                function(items, status) {
                    $("#videoList").fadeIn("fast");
                },
            "json")
        });
    }

Теперь я действительно запутался ... Даже простой

$(document).ready(function() {
    $(".videoImage").click(function() {
        $("#episodeList").fadeOut();
    });
});

Не исчезает. Если я изменю fadeOut () на hide (), это сработает.

Ответы [ 3 ]

0 голосов
/ 08 октября 2009

Возможно ли, что Chrome работает слишком быстро, чтобы увидеть, что происходит. Я бы попытался увеличить период затухания до 5 секунд и посмотреть, что произойдет. Также рассмотрим просто fadeOut без другого кода, чтобы увидеть, как Chrome ведет себя с этим #videolist. Я подозреваю, что Chrome не может понять, что такое #videolist, который должен исчезнуть, либо он, либо он не может исчезнуть.

Я использовал эффекты fadeIn / Out, и они отлично работают на Chrome. Ваш код выглядит идеальным, и вам не нужны какие-либо точки с запятой в этом конкретном примере. Лично я не использую их там, где они не нужны, потому что программы минификации не могут их удалить.

Наконец, я предполагаю, что вы используете последние версии jQuery и Chrome.

0 голосов
/ 19 декабря 2009

Перед затуханием сохраните HTML-код элемента, который будет затемнен, в переменную JavaScript, затем выполните фактическое затухание, а после этого просто верните исходный HTML-код из переменной в элемент, который был затенен. если этот элемент содержит некоторые элементы dom, которые будут использоваться при загрузке страницы, просто вызовите функцию загрузки страницы в конце.

var sHtml = $(".divFade").html();
$(".divFade").fadeIn();
$(".divFade").html() = shtml;
PageLoad();
0 голосов
/ 08 октября 2009

Не уверен, что это сработает, но стоит попробовать - попробуйте добавить точку с запятой после "json")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...