<script>
$(document).ready(function(){
$('.delete').live('click', function(e){
alert('delete');
e.preventDefault();
});
});
</script>
<a href='#' id='_1' class='delete'>Delete</a>
エラーが発生します:
不明なTypeError:オブジェクト[オブジェクトオブジェクト]にはメソッド 'live'がありません
問題が表示されないだけですか?
.live()
は廃止された関数(1.7以降)であり、jQuery 1.9以降から完全に削除されました。
代わりに.on()
または.bind()
メソッドを使用できます:
.live()
への呼び出しが独自のコード内にある場合は、 http://api.jquery.com/live に示されているルールを使用して、.on()
に変更します。 =。
コードがサードパーティのjQueryプラグインにある場合、jQuery Migrateプラグインを使用して、作成者がプラグインを更新するまで.live()
を復元します。 https://github.com/jquery/jquery-migrate #readme 。
実稼働サイトでは、 http://code.jquery.com/jquery-latest.js や http://などのjQueryの「最新」バージョンを参照するURLを使用しないでください。 ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js jQueryの新しいバージョンがリリースされると自動的に更新され、互換性がないとサイトが突然中断するためです。
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+
JQuery 1.7+を使用している場合は、on(...)
の代わりにlive(...)
を使用します。
チェック: http://api.jquery.com/on/
.on()も.bind()も機能しないシナリオが1つあります。イベントハンドラーを追加するときに要素が存在しない場合です。そして、これがlive()がしたことです。
<script>
$(document).ready(function(){
$('.delete').on('click', function(e){
alert('delete');
e.preventDefault();
});
});
</script>
JQuery移行プラグインがあります(それを使用します).......問題を解決します
ASP.NET MVC ajax-unobtrusive + jQuery 1.9 http://bugs.jquery.com/ticket/1322