web-dev-qa-db-ja.com

オブジェクトにはメソッド 'live'がありません-jQuery

<script>
$(document).ready(function(){
    $('.delete').live('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
<a href='#' id='_1' class='delete'>Delete</a>

エラーが発生します:

不明なTypeError:オブジェクト[オブジェクトオブジェクト]にはメソッド 'live'がありません

問題が表示されないだけですか?

44
reggie

.live()は廃止された関数(1.7以降)であり、jQuery 1.9以降から完全に削除されました。

代わりに.on()または.bind()メソッドを使用できます:

http://api.jquery.com/on/
http://api.jquery.com/bind/

122
diggersworld
  1. .live()への呼び出しが独自のコード内にある場合は、 http://api.jquery.com/live に示されているルールを使用して、.on()に変更します。 =。

  2. コードがサードパーティのjQueryプラグインにある場合、jQuery Migrateプラグインを使用して、作成者がプラグインを更新するまで.live()を復元します。 https://github.com/jquery/jquery-migrate #readme

  3. 実稼働サイトでは、 http://code.jquery.com/jquery-latest.jshttp://などのjQueryの「最新」バージョンを参照するURLを使用しないでください。 ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js jQueryの新しいバージョンがリリースされると自動的に更新され、互換性がないとサイトが突然中断するためです。

13
Dave Methvin

http://api.jquery.com/live/ を参照してください

古い

$("a.offsite").live("click", function(){ alert("Goodbye!"); });                // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+

新しい

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });        // jQuery 1.7+
3
user2466160

JQuery 1.7+を使用している場合は、on(...)の代わりにlive(...)を使用します。
チェック: http://api.jquery.com/on/

3
Learner

.on()も.bind()も機能しないシナリオが1つあります。イベントハンドラーを追加するときに要素が存在しない場合です。そして、これがlive()がしたことです。

3
Jinn

。onを使用

<script>
$(document).ready(function(){
    $('.delete').on('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
1
GDW

JQuery移行プラグインがあります(それを使用します).......問題を解決します

ASP.NET MVC ajax-unobtrusive + jQuery 1.9 http://bugs.jquery.com/ticket/1322

0
Ketan Thakkar