最近、jQuery を 1.8 から 2.1 にアップデートしました。突然、 が.live()
動作しなくなったことに気付きました。
エラーが発生しますTypeError: $(...).live is not a function
。
代わりに使用できる方法はありますか.live()
?
ベストアンサー1
jQueryは.live()
バージョン1.9以降では削除されました
つまり、バージョン 1.8 以前からアップグレードする場合、以下の移行ガイドに従わないと、問題が発生します。 単に!.live()
に置き換えてはいけません。.on()
検索と置換を始める前に読んでください:
ライブ サイトでのクイック/ホット フィックスの場合は、パラメーターが異なるため、関数を に置き換えないでください。live
on
.live(events, function)
次のようにマッピングされます:
.on(eventType, selector, function)
(child) セレクターは非常に重要です。何らかの理由でこれを使用する必要がない場合は、 に設定してくださいnull
。
移行例1:
前に:
$('#mainmenu a').live('click', function)
その後、子要素 ( a
) をセレクターに移動します.on()
。
$('#mainmenu').on('click', 'a', function)
移行例 2:
前に:
$('.myButton').live('click', function)
その後、要素をセレクター.myButton
に移動し.on()
、最も近い親要素(できれば ID 付き)を見つけます。
$('#parentElement').on('click', '.myButton', function)
親として何を設定すればよいかわからない場合は、document
常に次のようにします。
$(document).on('click', '.myButton', function)
参照: