私は、次のコードを持っており、上の()メソッドの使用にライブ()メソッドを使用してから変更したい:それはコメントについてですjQueryの - ライブからの変更()(上へ)
$('.commenttext').live('keydown', function(e) {
if ((e.which == 13) && !e.shiftKey) {
comment($(this));
return false;
}
});
をポストにも - on()メソッドを使ってオンザフライで作成されたものも含まれます。
$('.commenttext').on('keydown', function(e) {
if ((e.which == 13) && !e.shiftKey) {
comment($(this));
return false;
}
});
のように、単に「生きている」という単語だけを変更すると、オンザフライで作成されなかったアイテムでのみ機能します。
UPDATE 1
私は、次のようにコードを変更:commentsDivはcommenttextの親要素であると
$('.commentsDiv').on('keydown', '.commenttext', function(e) {
if ((e.which == 13) && !e.shiftKey) {
comment($(this));
return false;
}
});
を、まだそれはその場で作成された要素では動作しません。たとえば、次の関数はcommentsDivをオンザフライで作成します。
$('#postDiv').on('keydown', '#posttext', function(e) {
if (e.which==13 && !e.shiftKey) {
post($(this));
return false;
}
});
正しく調整する方法を知っている人はいますか?
感謝:)
あなたは '.commenttext' *静的*手段の**静的**親にコールバックを添付する必要がありますが、ページのロードに存在します。 – gdoron
@ gdoron、私はその文について変更する唯一の事は、イベントバインディング時に親が存在すると言うことです。 'live'(ドキュメントデリゲート)バインディングの利点は、ページのロードが完了する前に、*ページが読み込まれ終わった後、さらにdocument.readyの前でさえもできることです。 – zzzzBov