0
<div id = uni1>
        <input type=button class=click rel="1">
</div>
<div id = uni2>
        <input type=button class=click rel="2">
</div>
<div id = uni3>
        <input type=button class=click rel="3">
</div>
<div id = uni4>
        <input type=button class=click rel="4">
</div>

$(".click").click(function()
{
    alert("Help");
})

jqueryのクリックボタンを特定するのに問題があり、アラートが4回表示されます。「#uni1 .click」で識別できますが、これを静的に定義することはできません。つまり、.clickしか使用できません。MY uni1 <-- は DYNAMIC であるため、最大 uni100 を持つことができます。または Uni10000 (これはユニの数を持つユーザーの選択です)

私の質問は、入力タイプごとに各ボタンを一意に識別する方法です。ボタンをクリックした後、使用できます

$(".click").click(function()
{
    $(this).parent().attr('id');
//it doesn't solve the problem that alert will still be executed 4 times. i want to have click being uniquely identify upon user click.
    alert("Help");
})

<div id=uni>
    <div id = uni1>
            <input type=button class=click rel="1">
    </div>
    <div id = uni2>
            <input type=button class=click rel="2">
    </div>
    <div id = uni3>
            <input type=button class=click rel="3">
    </div>
    <div id = uni4>
            <input type=button class=click rel="4">
    </div>
</div>

$("#uni"+i).load(abc.html,function(){ $(".click").click(funcion(){ alert("help");})})
4

2 に答える 2

1

私はあなたの例を試しましたが、うまくいきました。http://jsfiddle.net/3yQ4W/

4 回プロンプトが表示された場合は、4 回宣言したか、表示されていない奇妙なループがそこにあるためです。

編集:

$("body").on('click','.click',function(){
   alert($(this).parent().attr('id'));

});
于 2012-06-07T01:51:34.300 に答える
0

おそらく閉鎖を使用する必要があると思います。Javascript は次のようになります。

(function(){
  var inputs = $(".click");

  for(var i = 0; i < inputs.length; i++){
    inputs[i].onclick = (function(n){
                           return function(){
                                   alert(n)
                                  }
                         })(i)    
  }

})()

したがって、各リンクには独自の onclick イベントがあります。いずれかをクリックすると、入力配列のインデックスが警告されます。また、jsfiddle をチェックすることもできます: http://jsfiddle.net/zhujy_8833/YWr7z/

于 2012-06-07T02:15:45.993 に答える