2013-01-11 28 views
1

讓我試着解釋我試圖完成。我想做一個記憶難題,但我很難與變量,if語句和返回。jQuery的兩個if語句1個可變的,但只適用於一個

能否請你看看我的例子並單擊塊三分四次。我想添加一些動作變量== 1和別的東西變== 2 但正如你所看到的,因爲它會跳過一次報警後1這是不行的...... 這是一個問題的時候,當與返回()?我相信是這樣,但我希望你能解釋我該如何解決這個問題,以及它是否與迴歸有關。

Example JSFIDDLE

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; 
    } 


}); 

回答

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; 
    } 
    } 
}); 
+0

謝謝你的幫助布拉! – Opoe

0

的if從句

if (amountofclicks == 2) { ... } 

不可能達到的,因爲它的下面,如果從句

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 
} 
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; 
    } 


});