1

<div>jsを初期化した後、近いクラスで新しい要素を作成し、on("click")関数が機能しません。

$(document).on('click', '.post-close', function () {
        alert("hello");
});

しかし、on('hover')完璧に動作します。

$(document).on('hover', '.post-close', function () {
        alert("hello");
});

しかし、クリックで動作させる必要があります。

4

3 に答える 3

4

これは、ブラウザのデフォルトの動作を妨げていないためです。eハンドラーに渡してから使用しますe.preventDefault()

$(document).on('click', '.post-close', function (e) {
    e.preventDefault();
    alert("hello");
});

編集

また、新しいハンドラーを作成する前にハンドラーをバインドします<div>

于 2012-10-18T13:36:05.437 に答える
1

なぜ次のようなものを使用しないのですか

$('.post-close').click(function(){
   //do something
});

要素が動的に追加された場合は、次を使用します。

$(document).on('click', '.post-close', function(){
   //do something
});

編集:
danWellman が言ったように、他のコードが実行されないようにする preventDefault IF を追加できます。それ以外の場合は、上記のコードを使用してください。

edit2:
.live を .on に変更しました

于 2012-10-18T13:36:58.620 に答える