jQuery fadeOut другого div'а (за исключением того, который щелкнул) - PullRequest
0 голосов
/ 20 августа 2011

У меня есть этот маленький кусочек кода jQuery (с помощью некоторых SOmembers), но мне просто не хватает этого последнего кусочка головоломки.Я постараюсь объяснить, как это работает и что в конечном итоге должно быть сделано.

Итак, первые две строки просты, все элементы с именем класса скрываются .toggle_hide

$(document).ready(function () {
        $('.toggle_hide').hide();

ЭтоСтрока кода означает, что элементы span, которые находятся внутри li, который находится внутри div # background-absolute_content, доступны для нажатия, поэтому у меня может быть функция для этого тега span.

    $("#background_absolute_content li span").css('cursor', 'pointer').click(function(){

Здесь становится немного сложнееобъяснить для меня, но я постараюсь.Я действительно не знаю, что это делает для моего кода, я думаю, что это селектор для чего-то?

var $this = $(this);

Когда элемент span щелкают по этой части, исчезает элемент с классом .toggle_hide

                $('.toggle_hide').fadeOut(200, function(){ 

И после того, как fadeOut был сделан, это fadeIn включается, чтобы показать div.И он выбирает div, который находится внутри «this», и я полагаю, что это li, в котором находится промежуток.

                $this.next("div").fadeIn(200);
            });
    });
});

Так что я думаю, что у меня все получилось, но проблема в том, что divэто должно быть показано, сделайте быструю вспышку перед появлением из-за исчезновения.Поэтому мне нужен способ выбрать все элементы li, кроме того, в котором есть текущий код span, чтобы код не влиял (заставлял его мигать) на div, находящийся внутри.Но, конечно, это нужно показать ...

Я попытался смоделировать проблему на jsFiddle http://jsfiddle.net/YpeeR/7/

Весь код для лучшего вида.

$(document).ready(function () {
        $('.toggle_hide').hide();

    $("#background_absolute_content li span").css('cursor', 'pointer').click(function(){
        var $this = $(this);
                $('.toggle_hide').fadeOut(200, function(){ 
                $this.next("div").fadeIn(200);
            });
    });
});

1 Ответ

0 голосов
/ 20 августа 2011

Будет ли эта тренировка: http://jsfiddle.net/amantur/EjAcZ/6/

Я изменил:

$('.toggle_hide').fadeOut(200, function(){ 
     $this.next("div").fadeIn(200);
});

на

$ ('. Toggle_hide'). FadeOut (200);

$ this.next ("div"). FadeIn (200);

var $this = $(this);
var $nxtDiv = $this.next("div");
$('.toggle_hide').not($nxtDiv).fadeOut(200);
$nxtDiv.toggle('slow');

Сначала будут скрыты все элементы div (в настоящее время отображается один текущийодин уже скрыт) * ​​1017 * за исключением текущего, а затем show переключает нажатый.

EDIT: - Я также обновил скрипку.

...