33

モーダル ウィンドウにボタンがあります。

<button id="submit_btn" class="btn btn-link">Send the invitation</button>

クリックをキャプチャしようとしています:

$('#submit_btn').click(function(event){
    event.preventDefault();
    alert( "GO" ); 
});

ボタンのクリックがモーダルウィンドウで飲み込まれ、それを防ぐためにevent.preventDefault()を使用することを読みました。しかし、それはうまくいきません。このボタンのクリック イベントをキャプチャできません。

他に何が欠けていますか?

どんなヒントでも大歓迎です!

4

4 に答える 4

76

これを試して -

$(document).on("click", "#submit_btn", function(event){
    alert( "GO" ); 
});

またはこれ -

$(document).delegate("#submit_btn", "click", function(event){
    alert( "GO" ); 
});

古いバージョンの jQuery を使用している場合は、代わりに live メソッドを使用する必要がある場合があります。

ライブ メソッド (必要な場合にのみ使用)

$("#submit_btn").live("click", function(event){
    alert( "GO" ); 
});

上記の 3 つの方法のいずれかで問題が解決すると確信しています。イベント ハンドラーが機能しない理由は、イベント ハンドラーが評価された時点で submit_btn 要素が存在しないためです。上記の 3 つのハンドラーは、現在および将来存在する submit_btn 要素で機能します。

/編集

これが動作するjsfiddleです - http://jsfiddle.net/GqD4f/8/

/別の編集

あなたの投稿でのアプローチを使用してjsfiddleを作成しましたが、動作します- http://jsfiddle.net/CR3bM/1/

イベント ハンドラーを DOM の準備が整っていませんか?

于 2013-07-03T19:06:49.473 に答える
4

これは私のために働く:

$(document).on("click", "#submit_btn", function(event){
    alert("GO"); 
});
于 2016-10-05T13:25:35.380 に答える