让我试着解释一下我想要完成的事情。我想制作一个记忆难题,但我很难用变量,if语句和返回。
请你看一下我的例子,然后在块上点击三到四次。我想在变量== 1时添加一些动作,在变量== 2时添加其他动作。 但正如你所看到的,这不会起作用,因为它一次跳过警报1 ...... 这是return()的问题吗?我相信,但我希望你能解释我如何解决这个问题,以及它是否与回归有关。
HTML
<div id="container">
<div class="coverup">
<div class="hoverdiv"></div>
<div class="image_A"></div>
</div>
<div class="coverup">
<div class="hoverdiv"></div>
<div class="image_B"></div>
</div>
<div class="coverup">
<div class="hoverdiv"></div>
<div class="image_A"></div>
</div>
<div class="coverup">
<div class="hoverdiv"></div>
<div class="image_B"></div>
</div>
</div>
JS
var amountofclicks = 0;
$('.coverup').bind("click", function (event) {
if (amountofclicks < 2) {
$(this).find('.letter').show();
amountofclicks++;
if (amountofclicks == 2) {
alert('2');
}
if (amountofclicks == 1) {
alert('1');
}
$(this).children().show();
} else {
$('.coverup').children().hide();
$(this).children().show();
amountofclicks = 1;
return;
}
});
答案 0 :(得分:2)
您最后应将ammountofclicks
设置为零。此外还有比需要更多的ifs。只有当瓷砖尚未显示或ammountofclicks
为零时,该功能才会运行,因此在开始时还会再检查一次。
var amountofclicks = 0;
$('.coverup').bind("click", function (event) {
if (amountofclicks==0 || !$(this).children().is(":visible")) {
amountofclicks++;
if (amountofclicks == 1) {
$('.coverup').children().hide();
}
$(this).find('.letter').show();
$(this).children().show();
alert(amountofclicks);
if (amountofclicks == 2) {
amountofclicks = 0;
}
}
});
答案 1 :(得分:0)
if-clause
if (amountofclicks == 2) { ... }
永远无法达到,因为它位于以下if子句
中if (amountofclicks < 2) { ... }
更详细......
var amountofclicks = 2;
if (amountofclicks < 2) {
// go here if amountofclicks < 2
if (amountofclicks == 1) {
// go here if amountofclicks == 1
}
if (amountofclicks == 2) {
// unreachable, because amountofclicks is always < 2
}
} else {
// go here if amountofclicks >= 2
}
答案 2 :(得分:0)
试试这个
var amountofclicks = 0;
$('.coverup').bind("click", function (event) {
if (amountofclicks <= 2) {
$(this).find('.letter').show();
if (amountofclicks == 2) {
alert('2');
}
if (amountofclicks == 1) {
alert('1');
}
amountofclicks++;
$(this).children().show();
} else {
$('.coverup').children().hide();
$(this).children().show();
amountofclicks = 1;
return;
}
});