-1

UIコードを編集しようとしていますが、次の点でブロックされています。私が何をしても、jqueryオブジェクトにあらゆる種類のイベントを固定することはできません。

クラス名がリンクされているオブジェクトはたくさんあります。次のコードは、jqueryオブジェクトに影響を与えません。

$(".link").on("click",function(x){alert("clicked")})

これが発生する理由として考えられるものは何ですか。コードをテストしたところ、$( "。link")が有効なオブジェクトを返していることがわかりました。

4

3 に答える 3

3

考えられる、そして非常にありそうな理由の1つは、要素が実際に存在する前にコードが実行されていることです。$(document).ready()呼び出しでコードをラップします。

$(document).ready(function() {
    $(".link").on("click",function(x){alert("clicked")});
});

推奨読書:

于 2013-02-07T13:17:06.740 に答える
1

とよくある混乱のよう.on()です。動的に追加される要素の場合は.on()、親(ドキュメントの準備ができたときに存在する)にを適用し、メソッドの2番目の引数としてスコープを配置する必要があり.on()ます。

あなたの場合、それは次のようになります。

$(document).ready(function() {
    $("body").on("click", "div.link", function(x){alert("clicked")})
});

これは、その場で作成されたそのような要素に対しても機能します。ライブテストケース

于 2013-02-07T13:24:27.737 に答える
0

通常、次のようなイベントをアタッチすること.on("click", function(d, i){ console.log('clicked'); })は機能するはずです...しかし、それがうまくいかない場合は、エッジにcssパーツが必要 pointer-eventsです。ここで、noneとして設定されます。これを削除すると、トリックが実行されます。

于 2013-02-07T13:16:33.947 に答える