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

エラーが発生します:

Uncaught TypeError:Object[objectObject]にはメソッド'live'がありません

問題がわかりませんか?

4

7 に答える 7

122

.live()は非推奨の関数(1.7以降)であり、jQuery1.9以降から完全に削除されています。

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

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

于 2013-01-25T16:27:45.127 に答える
13
  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://ajax.googleapis.com/ajax/libs/jqueryなどの「最新」バージョンのjQueryを参照するURLを使用しないでください。 /1/jquery.min.jsは、新しいバージョンのjQueryがリリースされると自動的に更新され、互換性がない場合はサイトが突然壊れてしまうためです。

于 2013-01-25T16:52:09.957 に答える
3

jQuery 1.7以降を使用している場合は、on(...)の代わりに使用してくださいlive(...)
これを確認してください:http://api.jquery.com/on/

于 2013-01-25T16:28:25.760 に答える
3

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

于 2013-02-25T19:08:06.957 に答える
3

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+
于 2013-06-08T11:15:49.893 に答える
1

.onを使用する

<script>
$(document).ready(function(){
    $('.delete').on('click', function(e){
        alert('delete');
        e.preventDefault();
    });
});
</script>
于 2013-01-25T16:29:12.700 に答える
0

jQuery移行プラグインがあります(それを使用してください).......それは問題を解決します

ASP.NET MVCajax-控えめな+jQuery1.9 http://bugs.jquery.com/ticket/13220

于 2013-02-07T18:07:21.520 に答える