0

昨夜からこの問題を解決しようとしてきましたが、まだうまくいきません。私はこれでひどく助けが必要です。状況は次のとおりです。クリック可能な画像が 4 つあり、それぞれの html ファイルに clickCount テキストボックスがあります。clickCount テキストボックスには、画像がクリックされた回数が表示されます。最初の 2 つの画像が機能するようになりましたが、3 番目の画像をクリックすると、2 番目の画像の clickCount テキストボックスが増加します。これが私のコードです:

    <script> 
  var targetId="";

 $(".foods").click(function(event) {
  if (event.target.id=="img1"){
  targetId="img1clickCount";
    addOrders();}

else if(event.target.id="img2"){
  targetId="img2clickCount";
    addOrders();    }

else if(event.target.id="img3"){
  targetId="img3clickCount";
    addOrders();    }

else if(event.target.id="img4"){
  targetId="img4clickCount";
    addOrders();    }

}); });

function addOrders(){
document.getElementById(targetId).value=parseInt(document.getElementById(targetId).
    value)+1;
}
  </script>

<body>
<table cellpadding=0 cellspacing=0 border=1 height=330 style="margin-left:18px">
<tr>

 //Images
<td><img src="gangjeong.png" width="100" style="cursor:pointer" id="img1"                              
class="foods"></td>
<td><img src="daktoritang.png" width="100" style="cursor:pointer" id="img2"
class="foods"></td>
<td><img src="tangsuyuk.png" width="100" style="cursor:pointer" id="img3"      
class="foods"></td>
<td><img src="tangsuyuk.png" width="100" style="cursor:pointer" id="img4"      
class="foods"></td>
<tr height="5">

//Textboxes
<td><input type="text" maxlength="5" readonly="readonly" value="0" id="img1clickCount">
</td>
<td><input type="text" maxlength="5" readonly="readonly" value="0" id="img2clickCount">
</td>
<td><input type="text" maxlength="5" readonly="readonly" value="0" id="img3clickCount">
</td>
<td><input type="text" maxlength="5" readonly="readonly" value="0" id="img4clickCount">
</td>
</tr></table>
4

6 に答える 6

3

最初の条件;

if (event.target.id=="img1"){      // Compares

2 番目の条件;

if (event.target.id="img2"){       // Uses = (ie assigns, not compares)
于 2013-08-16T04:21:59.427 に答える
1

他の条件で==を確認してください

成功する

$(".foods").click(function(event) {
  if (event.target.id=="img1") {
    targetId="img1clickCount";
    addOrders();
  }
  else if(event.target.id=="img2") {
    targetId="img2clickCount";
    addOrders();
  }
  else if(event.target.id=="img3"){
    targetId="img3clickCount";
    addOrders();
  }
  else if(event.target.id=="img4"){
    targetId="img4clickCount";
    addOrders();
  }
})
于 2013-08-16T04:23:22.950 に答える
1

===比較に使用する必要があります

else if(event.target.id === "img2"){
于 2013-08-16T04:24:36.817 に答える
0

このようにコードを書き直してください。はるかに簡単です-

$(".foods").click(function(event) {
    addOrders($(this).attr('id') + 'clickCount');
});

function addOrders(targetId){
    var value = parseInt(
        $('#' + targetId).val()) + 1;
    $('#' + targetId).val(value);
}
于 2013-08-16T04:26:16.070 に答える
0

他の誰もがあなたの =/== のタイプミスをすでに指摘しています。

ただし、すべての if/then/elseif の代わりに、DRY メソッドを使用します。

targetId = this.id + clickCount;
addOrders();

event.targetjQueryを使用する場合は使用する必要がないことに注意してください。jQuery はthis、すべてのイベント ハンドラーでターゲット要素にバインドします。

targetIdまた、グローバル変数を設定する代わりに、パラメーターとしてに渡すこともお勧めしますaddOrders

于 2013-08-16T04:26:16.383 に答える
0

==比較の代わりに使用する必要があります=。前者は比較演算子で、後者は代入演算子です

于 2013-08-16T04:22:27.573 に答える