我是一个 jQuery/javascript 新手,我遇到了 jQuery 的问题,这让我在过去的几天里陷入了困境。这是一个从 3 个不同的 div 切换的脚本。它确实从第一个切换到第二个,但如果随机选择试图从第二个切换到第三个,它会冻结脚本。
html
<span class="block">
<span class="text1 _shown">1111</span>
<span class="text2 _hidden">2222</span>
<span class="text3 _hidden">3333</span>
</span>
<span class="block">
<span class="text1 _shown">1111</span>
<span class="text2 _hidden">2222</span>
<span class="text3 _hidden">3333</span>
</span>
css
.block{
position:relative;
display:inline-block;
}
._shown{
position:relative;
display:block;
}
._hidden{
visibility: hidden;
}
Javascript
jQuery(function() {
var nbcases = $(".block").length;
var nbvignomg = $(".imgcases").length;
var i;
var chkcases = new Array();
for(var j = 0; j < nbcases-nbvignomg; j++){
chkcases.push(1);
}
function showNextTranscri() {
i = Math.floor(Math.random()*(nbcases-nbvignomg));
$('#texteTransis').html(chkcases);
$('#texteTransis2').html(i);
if(chkcases[i] == 1){
$('.text1').eq(i).fadeOut(700, function() {
$('.text1').eq(i).removeClass("_shown").addClass("_hidden");
$('.text2').eq(i).removeClass("_hidden").addClass("_shown");
chkcases[i] = 2;
$('.text2').eq(i).hide().fadeIn(700).delay(500, showNextTranscri);
});
}
if(chkcases[i] == 2){
$('#texteTransis3').html('[x]');
$('.text2').eq(i).fadeOut(700, function() {
$('.text2').eq(i).removeClass("_shown").addClass("_hidden");
$('.text3').eq(i).removeClass("_hidden").addClass("_shown");
$('.text3').eq(i).fadeIn(700).delay(500, showNextTranscri);
chkcases[i] = 3 ;
});
}
if(chkcases[i] == 3){
$('.text3').eq(i).fadeOut(700, function() {
$('.text3').eq(i).removeClass("_shown").addClass("_hidden");
$('.text1').eq(i).removeClass("_hidden").addClass("_shown");
$('.text1').eq(i).fadeIn(700).delay(500, showNextTranscri);
chkcases[i] = 1;
});
}
}
showNextTranscri();
})();
这似乎是我的 jQuery 行无法继续并卡住了整个事情
$('.caseh1#transcri2').eq(i).fadeOut(700, function() {
$('.caseh1#transcri3').eq(i).fadeIn(700).delay(500, showNextQuote);
非常感谢您提供的任何帮助。
编辑:用更清晰的代码更新