0

これは正常に機能します。

$('.classname').click(function() {
  alert('');
});
<div class="classname">Click me!</div>

しかし、これはしません:

$('.classname').click(function() {
  alert('');
});
<div class="classname">Click me!</div>
<div class="classname">Click me!</div>

どうすればこれを修正できますか?ご協力いただきありがとうございます!(タグ内のスクリプト、および.clickはドキュメントレディ関数内にあります)

4

4 に答える 4

2

これを試してみてください:

$('PARENTNODE').on('click', '.classname', function() {
  alert('');
});
<div class="classname">Click me!</div>
<div class="classname">Click me!</div>

クリックハンドラーがアタッチされた後、要素が追加されます。.on()を使用すると、将来の要素に対しても.on()を有効にできます。

PARENTNODEを委任先の親(例:body)に置き換えます

于 2013-02-07T12:01:07.653 に答える
0

これを試して

$(document).ready(function(){
    $(document).on('click', '.classname', function() {
      alert('');
    });
});

http://api.jquery.com/on/を参照してください

于 2013-02-07T12:00:47.300 に答える
0

.clickが呼び出された時点で存在しない要素をターゲットにしようとしています。

jqueryコード全体を$(function(){ここにあるコード});の間にラップすることができます。または、2つの<div>の後にJavaScriptを移動します。

于 2013-02-07T12:03:22.833 に答える
0

最初のdivを除くすべてのdivが動的に追加されると想定しています。

イベント委任アプローチを使用します。

$(function(){
    $(document).on('click', '.classname', function() {
        alert('');
    });
}),
于 2013-02-07T12:06:28.463 に答える