下面是我的代码,当我点击下一个方框时,它显示方框B第二个方框并隐藏方框A,依此类推如果方框C装入最后一个方框,它将显示警告“没有方框”
我的CSS
.hide{ display:none}
我的HTML
<div class="q">Box A</div>
<div class="q hide">Box B</div>
<div class="q hide">Box C</div>
<a href="#" id="btnNext">Next Box</a>
<div id="alert" class="hide">There is no Box left</div>
我的JS脚本
$(function() {
$("#btnNext").click( function() {
$(this).parents('.q').fadeOut(500, function() {
if( $('.q:last') ) {
$("#alert").fadeIn( 500 );
} else {
$(this).next().fadeIn( 500 );
}
});
});
});
答案 0 :(得分:2)
请改用此代码。
$("#btnNext").click(function(){
$('.q:visible').fadeOut(500, function(){
if($(this).index()==$('.q').length-1){
$("#alert").fadeIn(500);
}else{
$(this).next().fadeIn(500);
}
});
});
您无需更改HTML中的任何内容。
答案 1 :(得分:1)
$(this).parents('.q')
不起作用; .q
div中没有一个是a
的父级。此外,您需要确保只选择第一个.q
。此外,一旦div
淡出,它仍然在DOM中,所以一旦完成,你就会想要从DOM中删除它。否则,同一个人每次都会淡出。
$(this).parent().find('.q')[0].fadeOut(500, function() {
if ($(this).is(':last')) {
$('#alert').fadeIn(500);
} else {
$(this).next().fadeIn(500);
}
$(this).remove();
});
答案 2 :(得分:0)
试试这个
$(function() {
$("#btnNext").click(function(){
$('.q').fadeOut(500, function(){
if($(this).index() == $('.q').length-1){
$("#alert").fadeIn(500);
}else{
$(this).next().fadeIn(500);
}
});
});
});