1

私が達成しようとしていることを説明しようと思います。記憶パズルを作りたいのですが、変数、ifステートメント、returningに苦労しています。

私の例を見て、ブロックを3〜4回クリックしてください。変数==1の場合はアクションを追加し、変数== 2の場合は別のアクションを追加したいのですが、ご覧のとおり、これは1回のアラート1をスキップするため、機能しません...これは戻る()?私はそう信じていますが、私がこれを修正する方法と、それが返品に関係するかどうかを説明していただければ幸いです。

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


});
4

3 に答える 3

2

ammountofclicks最後にゼロに設定する必要があります。また、必要以上の if があります。この関数は、タイルがまだ表示されていないかammountofclicksゼロの場合にのみ実行する必要があるため、最初にもう 1 つのチェックがあります。

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;
    }
  }
});
于 2013-01-11T11:31:18.243 に答える
0

if節

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
}
于 2013-01-11T11:39:56.747 に答える
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;
  }


});
于 2013-01-11T11:47:40.493 に答える