0


0

jQuery live()が機能しないのはなぜですか?

私はうまく動作する次のコードを持っています:

$('.ui-selectmenu-menu a').click(function() { alert('OK'); });

ただし、次のように置き換えた場合:

$('.ui-selectmenu-menu a').live('click', function() { alert('OK'); });

それは動作しません。

その理由は何でしょうか?

(私の場合、実行中に `$( '。ui-selectmenu-menu a')`要素を削除して再度追加できます。)

2 Answer


1


クラスが変更された場合 親に `class =" ui-selectmenu-menu`がない場合、セレクターは一致しなくなります。イベントが発生した後にこれが発生しないことを確認してください。

要素に直接バインドするのとは異なり、セレクターは一致しなくなったため、http://api.jquery.com/live/ [.live()]ハンドラーがその要素のイベントを発生させなくなります。


1


ニックの答えは理にかなっています。 ただし、jqueryバージョン1.3以降を使用していることも確認してください。 `.live()`はjqueryバージョン1.3で追加されました。