2010-12-30 15 views
2

(イムdivの層に新しい<p>要素を追加するためにjqueryのからbefore()機能を使用して。livequery keypressイベント

$('#AddParagraphButton').click(function() { 
    $('#TheLayer').before('<p contentEditable='true'>Some text...</p>');  
}); 



ここ 私は<br>タグを挿入するkeypress機能を設定している。

$('p').keypress(function(e){ 
    if(e.which == 13){ 
     e.preventDefault(); 
     document.execCommand('insertHTML', false, '<br/>'); 
    } 
}); 


append関数が呼び出され、新しい<p>が追加されるまで、これはうまく動作します(brタグが挿入されます)。 キーを押してイベントをバインドして再びバインドするivequery?


EDIT:<p>タグはのcontentEditable性質を持っています。 <br>タグはdiv要素に包まれて、私は唯一の<br>タグ

答えて

1

を望んでいるので、イムは、これをやって、あなたはlive()機能が内蔵され..

説明使用して考えがあります:?のイベントにハンドラをアタッチします現在および将来、現在のセレクタに一致するすべての要素。

$('p').live("keypress", function(e){ 
    e.preventDefault(); 
     if(e.which == 13){ 
     document.execCommand('insertHTML', false, '<br/>'); 
    } 
}); 
+0

私はイムのcontentEditableを使用していることを追加するのを忘れ。この関数はすべてのキーイベントを無効にしてからhtmlを追加しても – Zebra

+0

私の悪いです。すべてのキーイベントを無効にするif()ステートメントの前にpreventDefault()メソッドを配置しました。あなたのコードは完全に機能しました。どうもありがとう! – Zebra

関連する問題