1

ボタンがクリックされ、id が存在するたびに、私のプログラムでカウンターに 1 を追加しようとしています。しかし、私の問題は、3 回クリックすると、3 ではなく 2 のアラートしか表示されないことです。これを達成するためのより良い方法はありますか?

ここに私のコードがあります:

Var q=1;
if ($("#"+val).length==0){
alert (q)
}else
{
q=q+1
alert (q)
}

ここに私のボタンクリックの完全なコードがあります。var q はグローバルモードで宣言されていることに注意してください: 私はこのプログラムの専門家ではありません。

$(document).on('click',".add", function(){

var add=($(this).attr('id')) //this collect the id

var q=1;
        var val=($(this).attr("name"))

 if ($("#"+val).length==0) {

        alert(q)
 }else{
q=q+1
 alert(q)
 }
4

3 に答える 3

0

変数 q をグローバル変数として宣言して、ページを更新するまでページのライフ サイクル全体で使用できるようにします。

     <script>
     var q = 1;
     function Myfunction()
     {
     // put your logic here and use the q 
     }  
     </script>  
于 2013-03-28T03:34:22.007 に答える
0

Var q=1;グローバルとして宣言する必要があります。

Var q=1;
$('SELECTOR').click(function(){ /* increment code */ });

単なるタイプミスの場合は、無視するか;、ステートメントを終了してください。

于 2013-03-28T03:35:33.090 に答える
0

q最初は 0 に設定してください。あなたがスキップできるよりif - else...

var q = 0;
$(document).off('click', 'SELECTOR').on('click', 'SELECTOR', function() {
    q++;
    alert(q);
)};

編集:

Oké、最初は、あなたvar qが思っているほどグローバルではありません。クリック ハンドラの外にある必要があります。あなたが書いたように、 をクリックするたびに q が 1 に設定されます.add

上記の私のコードは、すべてのコードを置き換えます。しかし、私はあなたのニーズにさらに合うようにそれを適応させます.

var q = 0;
$(document).off('click', '.add').on('click', '.add', function() {
    var add = $(this).attr('id');
    var val = $(this).attr("name");
    if($('#'+val).length != 0) {
        q++;
        alert(q);
    } 
    else {
        alert(q);
    }
)};

注:念のため最初に使用.off()します。私はこの方法が好きです。そうしないと、.on()...

これがお役に立てば幸いです。

于 2013-03-28T08:10:13.477 に答える