jQuery eq () выбирает слишком много элементов - PullRequest
0 голосов
/ 02 января 2019

Я удаляю div в соответствии с тем, какую кнопку закрытия нажимает пользователь, поэтому я использую eq (), проблема в том, что, например, пользователь нажимает на eq (0), первый говорит несколько (как и ожидалось)), но второй div также считается eq (0) и некоторыми.Это как если бы я, например, закрывал div eq (0), остальные два div тоже закрывали, как если бы они были eq (0), но это все только одним нажатием на div eq (0), например, который должен был закрытьтолько один, я уже пытался использовать stopImmediatePropagation (), но когда я закрываю div, он закрывает все вышеперечисленное, а когда я не использую его, все отключается!Кто-нибудь знает, в чем проблема?

Вот пример кода eq ():

$('.' + tabHistoryBtn).click(function() { //close button
            var index = $(this).index();
            if(index == 0){
                $('.' + currentDivTabBarContent).eq(0).remove(); //content to remove
                $('.' + tabHistory).eq(0).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("1");
            }
            if(index == 1){
                $('.' + currentDivTabBarContent).eq(1).remove();
                $('.' + tabHistory).eq(1).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("2");
            }
            if(index == 2){
                $('.' + currentDivTabBarContent).eq(2).remove();
                $('.' + tabHistory).eq(2).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("3");
            }
});

Вот Jsfiddle с полным кодом: http://jsfiddle.net/willianjohns/w5eLs8d4/16/

1 Ответ

0 голосов
/ 02 января 2019

var index = $(this).index(); всегда возвращает 0. Замена на $('.' + tabHistoryBtn).index(this) сделает то, что вы ожидаете.

http://api.jquery.com/index содержит больше информации о том, как использовать $ .index ()

...