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()
的信息
我根据用户点击的关闭按钮删除了一个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()
的信息