2012-01-30 15 views
0

上に存在していなかった要素上で実行されていない:jQueryのコード私は、ページの読み込みにJavaScriptをロードするWebアプリケーションを持っているページのロード

$(function() { 
    $('.modal-delete').click(function() { 
    alert(); 
    }); 
}); 

私は警告ブランクの一連のボタンを使ってHTMLページを持っていますクリックしたときのメッセージボックス:

<button class="modal-delete btn danger"></button> 

うまくいきます。

しかし、上記のものと同じように多くのボタンを生成するAJAX呼び出しをいくつか持っていますが、ページの読み込みではありません!それらはいつでも作成できます。これらのボタンは何もしませんが、アラートをロードするためのものです。それらは同じですが、ページロード時に決して存在しなかったので、Jqueryコードはこれらのボタンでは機能しません。これらのボタンにも同じコードを添付するにはどうすればよいですか?

感謝:)。

答えて

2

私はjQueryの「生きる()」関数をしたいと思います:

$('.modal-delete').live('click', function() { 
    alert(); 
}); 

これが一致しても要素に結合します将来新たな要素が追加されたときに再バインドします。

"現在のセレクタと現在および将来の現在のセレクタに一致するすべての要素にイベントハンドラをアタッチする"

+0

これは、使用しているjQueryのバージョンによって異なります。非常に古いバージョンのjQuery(1.4.2より前)を使用している場合を除いて、jQuery 1.7以降では 'delegate()'を使用する前に 'on()'を使用する必要があります。あなたが利用できる他のオプションのいずれも持たないので、 'live()'を使って新しいコードを書いてください。 –

+0

頭をアップしてくれてありがとう、前回私が見た前回はv 1.4(ish)の周りだったので、私の提案を説明するかもしれない。 1つの側面として、それぞれの利点/欠点はありますか?それとも単に命名規則/バージョンの好みですか? – dougajmcdonald

1

変更し、これに準備ができてコード...

$(function() { 
    $("document").on("click", ".modal-delete", function() { 
    alert("click"); 
    }); 
}); 
関連する問題