0

ここで私が期待しているのは、クラスをクリックしたときに起動する関数ですが、それは起こりません! a.button は動的に作成されますが、完全に読み込まれるとページ上に表示されます!

理由はありますか?

HTML:

   <a class="btn btn-success useImg">
          <i class="fa-icon-plus"></i>
          <span>Use</span>
   </a>

Jクエリ:

    $(".useImg").on("click", function(){
    alert("test");
    });
4

5 に答える 5

4

あなたのコードは、ここで見ることができるスタンドアロンの jsFiddle で完全に正常に動作します。

したがって、次のいずれかの問題が発生している必要があります。

  1. DOM の準備が整う前、またはオブジェクトが存在する前に、イベント ハンドラーをインストールしようとしています。
  2. JavaScript にエラーがあり、イベント ハンドラーをインストールできません。
  3. ページまたは HTML の実際のコードは、質問に入力したものと同じではないため、開示されていない他の問題があります。

コードをハンドラーに入れるか、$(document).ready()委任されたイベント処理を使用することで、最初の項目から保護できます。

2 番目の項目については、ブラウザのエラー コンソールでスクリプト エラーを確認する必要があります。

于 2013-05-12T17:45:13.527 に答える
1

クリック イベントを DOM ツリーのさらに上の別の要素に追加し、アンカー要素で機能するようにフィルタリングする必要があります。.useImgこれは、動的に追加されたものを含む、クラスを持つすべての要素に対して発生します。

$('body').on("click", ".useImg", function(){
    alert("test");
});

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

ページが完全にロードされるように、jQuery DOM Ready イベントでコードをラップしてください。例えば

$(document).ready(function() {
  $('body').on("click", ".useImg", function(){
        alert("test");
    });
});
于 2013-05-12T17:41:56.827 に答える
0

ドキュメントの準備ができたら試してください

$(function() {
 $(".useImg").on("click", function(){
    alert("test");
    });
}
于 2013-05-12T17:43:28.537 に答える
0
$(document).ready(
  $('.useImg').click(function(){ alert(test); })
)
于 2013-05-12T17:43:55.780 に答える