以下のコードでライブを使用したいスクリプトがあります。
if($('#Menu').length >0) {
$('#Menu >li').click(function() {
});
}
どうすれば使用できますか?
以下のコードでライブを使用したいスクリプトがあります。
if($('#Menu').length >0) {
$('#Menu >li').click(function() {
});
}
どうすれば使用できますか?
1.7で廃止されたため、代わりに使用してくださいlive
if($('#Menu').length) {
$('#Menu').on('click', '> li', function() {
});
}
jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベントハンドラーをアタッチします。古いバージョンのjQueryのユーザーは、.live()ではなく.delegate()を使用する必要があります。
jQueryバージョン< 1.7
とを使用している場合は、デリゲート>= 1.4.2
を使用できます
$('#Menu').delegate('> li', 'click', function() { // different argument order than on
});
あなたはそうしない。
.live()
を優先して非推奨になり.delegate()
、その後.delegate()
(.bind()
など)をを優先して非推奨になりました.on()
。
.live()
後継者の実装例これにより、同様の結果が得られる可能性があります。
$('#Menu').on('click', '> li', function(){
});
.on()
、.delegate()
すでに述べたように、.live()
が廃止されたため、ご使用のバージョンのjQueryで利用でき.delegate()
ない場合は、最初に使用してみてください。.on()
.delegate()
$('#Menu').delegate('> li', 'click', function(){
});
live()
似たようなことをする例を主張する場合は.live()
、次のようなコードを記述できます。
$('#Menu > li').live('click', function(){
});
一般に、イベントハンドラーを追加するために何かが存在するかどうかを確認する必要はありません。jQueryは要素を検索し、見つからない場合はイベントハンドラーを追加しないため、次のように記述できます。
$('#Menu >li').click(function() {
});
あなたがあなたの質問に書いたものの代わりに。
.live(events、handler(eventObject))
<script>
$("#Menu >li").live("click", function(){
});
</script>
は使用しないでくださいlive
。あなたが使用する必要がありますon
Liveは非推奨です-使用しないでください。psこれもデリゲート構文を置き換えます-必要に応じて...
2番目のパラメータを指定する必要はありません。そうすると、コンテナ自体とそのすべての子+サブチャイルドをリッスンします。(1.7+)以降
例 :
$(".myDiv").on("click","#myButton",function (){
alert('1');
})
jQuery 1.7以降、.live()メソッドは非推奨になりました。.on()を使用して、イベントハンドラーをアタッチします。古いバージョンのjQueryのユーザーは、.live()ではなく.delegate()を使用する必要があります。
あなたの場合、あなたはこのように使うことができます
if($('#Menu').length >0) {
$('#Menu >li').live("click", function() {
});
}