2011-10-21 17 views
0

jQueryを使用しているテキストエリアに問題があります。次のHTMLを参照してください。テキストエリアイベントが機能しない - jQuery

<div class="CodeMirror"> 
    <div> 
     <textarea autocapitalize="off" autocorrect="off" wrap="off"> 
     </textarea> 
    </div> 
</div> 

上記のテキスト領域にはidがありません。したがって、jQueryの助けを借りて追加しました。

$('.CodeMirror').children().find('textarea').attr('id','new_editor'); 

私はfirebugで検査し、そのテキスト領域のIDとして "new_editor"を見ることができます。 しかし、問題は私がidをnew_editorでそのテキスト領域に値を取得するイベントを添付することはできません。

私も

$("#new_editor").live('click',function(){ 
    alert('test'); 
}); 

でもない作業を試してみました....そのテキスト領域を動的にCodeMirror(codemirror.net)によって生成されます。

これで、jQueryを使用して、そのテキスト領域で何らかの操作を行いたいと思います。

私に何が間違っていますか?助けてください ありがとうございました。

EDIT - 申し訳ありませんが、その問題ありませんが、実際にそれが間違いだった[間違いを入力して、私の実際のコードは、$記号と#とないである]

+0

既存の要素の上に 'live'を使用する必要があるのはなぜ? –

+1

'find'を呼び出す前に子供を選択する必要はありません。 '$("。CodeMirror ")。find(" textarea ")'はうまく動作します。 – peirix

+0

ええ、確かに修正されました。 – Red

答えて

2

あなたは間違った選択を持っています。 これを試してください。 (#代わりに$)

$("#new_editor").live('click',function(){ 
    alert('test'); 
}); 
+0

私の前にあります:p – peirix

+0

編集 - 申し訳ありませんが、実際には間違いでした[入力ミス、私の本当のコードは# – Red

0

は、うーん...私はここにJSFIDDLEへhttp://jsfiddle.net/j7W7U/2/

それを貼り付けそしてそれは完璧に動作しているようだだから、あなたがどこかに誤りがないことを確認し、あなたをチェックエラー:)


$( "$のnew_editor")のコンソールに住んでいます。( 'クリック'、機能(){ 警告( 'テスト'); });

はあなたの選択が間違っているためだこと#:)

+0

EDIT - 申し訳ありませんが実際には間違いでした[間違いを入力して、私の実際のコードは#で、$記号ではありません] – Red

+0

私のポストを更新しました:P –

+0

私は統合されていませんhttp://codemirror.net/プラグイン、私はそれが私を防ぐと思う... – Red

1

で$を打ち間違え

$("#new_editor").live('click',function(){ 
alert('test'); 
}); 

でなければなりません。あなたのセレクタに#$スイッチ:

$("#new_editor").... 
+0

EDIT - 申し訳ありませんが、その問題は実際には間違いでした[間違いを入力して、私の実際のコードは#であり、$記号ではありません] – Red