質問:
ページ上のすべての選択ボックスに対して.hover
イベントをバインドして、オンマウスかどうかによってその幅を少し変えるようなコードが有るんだけど、これはページの準備ができた時点ではうまく動作してる。
で、問題なのは、AjaxまたはDOMを介して追加した選択ボックスだとイベントがバインドされない、ってことなんだ。
幸いこのプラグイン(jQuery Live Queryプラグイン)を見つけたんだけど、僕のページにプラグインを追加する前に、誰かjQueryを使うか、別の方法かでこの問題を解決する方法を知ってる人がいないかなって聞きたいと思ったんだ。誰かいいアイデア無い??
By Eli | 質問日時: 2008年10月14日 23:25
回答1:
jQuery 1.7以降 jQuery.fn.on
が使える
|
**これよりも推奨されるべきアプローチはlive()
かな:
|
でも、 live()
は on()
のせいでに1.7では廃止され、1.9で完全に除去された。live()
はこう書けるけど:
|
でも以下のon()
に置き換えることができる。
|
たとえば、あるページがクラス名dosomething
を持つ要素を動的に作成していたとすると、、イベントはすでに存在する親にバインドされてる。
|
イベントがバインドされる時点で存在するすべての親でうまくいくよ。例えば
|
は以下に適用される
|
回答2:
これは、ライブラリやプラグインを使用しない純粋なJavaScript での方法だよ。
|
ここで hasClass
は
|
By Ram Patra | 回答日時: 2014年12月9日 7:59
回答3:
オブジェクトを作成するときにイベントを追加することができるよ。君が同じイベントを複数のオブジェクトに異なるタイミングで追加している場合なら、名前付き関数を作成するのがいいかも:
|
By nickf | 回答日時: 2008年10月14日 23:31