2013-02-05 25 views
26

私は、生成されたページとフレームにlive()を使用しました。しかし、jQuery 1.9では、この関数は推奨されておらず、動作しません。jQuery - "live()"の代わりに "on()"メソッドを使用する方法は?

live()の代わりにon()を使用しますが、この方法は一度動作し、フレームでは機能しません。

私のコードは次のようになります。

$("#element").live('click',function(){ 
    $("#my").html(result); 
    }); 

ソリューションとは何ですか?

+6

[ドキュメントを読む](http://api.jquery.com/on/)。イベントハンドラをDOMツリーの上位に委譲します。 –

+6

['.live()'](http://api.jquery.com/live/)のドキュメントには、 '.live()'から '.on()'への変換に関するセクションもあります。 –

答えて

68
$('body').on('click', '#element', function(){ 
    $("#my").html(result); 
}); 

クリック要素セレクタは、現在.on()関数パラメータを通過させ、そして以前セレクタは、IDと、好ましくは、最も近い親セレクタに置き換えなければなりません。使用する親セレクタがわからない場合は、bodyも機能しますが、効率は低くなります。

既存のコードを移行する方法については、jQuery 1.9 .live() is not a functionを参照してください。

+0

この有益な答えをありがとう、私のために働いた。 – Farhad

+0

thanx ... nice answer ... –

関連する問題