新しいページをロードするid = newのボタンがあります
$("#new").click(function(){
$("#message_area").load("new.php");
});
新規にボタンがあります。データベースにメッセージを送信するphp。しかし、私はそれに問題があります、それは私がajax経由で他のリンクに移動し、上記のコードを使用してnew.phpを再度ロードし、new.phpの送信ボタンが機能しない場合にページがロードされたときに初めて機能します私は更新する必要がありますそれからそれは働きます。 new.phpの送信ボタンは、DOMが初めて作成された後に追加されるためだと思います。 事前に感謝を助けてください..
回答:
回答№1は1//jquery >= v1.7
$("body").on("click", "#new", function(){
$("#message_area").load("new.php");
});
//jquery < v1.7
$("#new").live("click",function(){
$("#message_area").load("new.php");
});
回答№2の場合は3
マークアップの詳細を投稿する必要がありますより正確な答えを得るには、一般的な考え方はイベント委任を使用することです。イベントハンドラーを、DOMから削除されないボタンの祖先にバインドします。例えば:
$("#message_area").on("click", "#yourButton", function() {
//Do stuff
});
これは、DOMイベントがツリーをバブルアップするために機能します。すべての要素の祖先を通して。ここでは、ツリーの上位にあるイベントをキャプチャし、それが関心のあるものから発生したものかどうかを確認しています(#yourButton
)。
jQueryを参照してください .on
多くのための。 1.7未満のバージョンのjQueryを使用している場合は、次を使用する必要があることに注意してください。 delegate
代わりに。
回答№3の場合は0
$("#new").live("click", function(){
$("#message_area").load("new.php");
});
これは非推奨であることに気づきました-代わりにを使用する必要があります..私の悪い。
回答№4の場合は0
このように動的に作成された要素を管理するには、次を使用する必要があります 。に() (jQuery 1.7以降)または .delegate() (jQuery 1.4.3以降)イベントを割り当てます。誰もが私をコードに打ち負かしたようですが、関数へのリンクについてはこれを投稿します。