jQuery eq() 选择了太多元素

jQuery eq() selects too many elements

我根据用户点击的关闭按钮删除了一个div,所以我使用的是eq(),问题是例如用户点击了eq(0),第一个一个说一些(如预期的那样),但第二个 div 也被认为是 eq (0) 和一些。就好像我关闭了 div eq (0) 其他两个 divs 也关闭了,就好像它们是 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/

var index = $(this).index(); 始终是 returns 0。将其替换为 $('.' + tabHistoryBtn).index(this) 将达到您的预期。

http://api.jquery.com/index 有更多关于如何使用 $.index()

的信息