2017-10-01 3 views
0

私のページに同じクラスの複数の動的に作成されたボタンがあり、ボタンをクリックして関数を呼び出そうとすると、関数はすべてのボタン同じクラス。 このクリックイベントに対してのみ関数を呼び出すようにします。 は、ここに私の関数である: -JQueryでこのクリックイベントのソースを取得する

$(".js-btn-plus").click(function (e) { 
var link = $(e.target); 
var val = link.next('.value').text(); 

val++ 

link.next('.value').text(val); 
}); 
+1

あなたのHTMLコードも投稿できますか?理想的には、コードは正常に動作するはずです。しかし、あなたのHTMLも見る必要があります。 – Tapas

答えて

0

.text()は、文字列を返します。文字列valあなたはjQueryのと一緒にいくつかのサンプルHTMLを提供することができますしてください数

val = Number(val) + 1 

または

val = +val++ 
+0

クラスに.js-btn-plusクラスの5つのボタンがあると仮定して、クラスの.js-btn-plusクラスのすべてのボタンではなく、クリックされたボタンに対してのみ関数を実行するだけです。 –

0

に変換しますか?私はあなたがそれはあなたが達成しようとしているということです何e.target

$(document).on('click', '.js-btn-plus', function() { 
    var val = parseInt($(this).find('.value').text()); 
    val++; 
    $(this).find('.value').text(val); 
}); 

ない100%確認するのではなく、$(this)を使用して見てしたいことがあり見ることができるものから、

は、より良い方法があるかもしれませんあなたが少し説明し、あなたの質問と一緒に行くためにいくつかのHTMLを提供することができれば、それをすること。

編集: 'on'機能を使用すると、スクリプトがロードされ実行されたときにリスナーを起動させる代わりに、関数イベントを動的にバインドできます。

+0

私は、クラスが.js-btn-plusの5つのボタンを持っていると仮定します。クラスのすべてのボタンではなく、クリックされたボタンに対してのみ関数を実行します。 –

+0

My返事はあなたがしているものでなければなりません。試して結果を教えてください。 –

0

私のソリューション:

$(".js-btn-plus").click(function (e) { 
    var val = parseInt($(this).next('.value').text()); 
    val++; 
    $(this).next('.value').text(val); 
}); 
0

多分ボタンの一意のIDを生成し、代わりにクラスのイベント参照としてそれを使いますか?

関連する問題