Visual Studio Express 2012 for Web でいってみる 20.番外編 jquery-1.9.0 への更新?でJavascript エラーに
Visual Studio Express 2012 for Web MVC4 -Razor で開発してるんですが、
NuGetパッケージの管理でパッケージの更新したら、Javascriptでエラーが発生するようになってしまいました。。原因不明です。
NuGetパッケージの管理でパッケージの更新したら、Javascriptでエラーが発生するようになってしまいました。。原因不明です。
試しに、
新しいプロジェクトを「ASP.NET MVC4 Webアプリケーション」-「インターネットアプリケーション」,Razor のテンプレートで作成し、デバッグモードでログインや登録のページが開くことは確認できました。この時点で
jquery-1.7.1.js
etc.がセットされます。
etc.がセットされます。
その後[ツール]-[ライブラリパッケージマネージャー]
「ソリューションのNuGetパッケージの管理」の更新プログラムから
『ハンドルされない例外 下記ソースコードの行 115、列 5 で発生しました。 http://localhost:56603/Scripts/jquery.unobtrusive-ajax.js
0x800a01b6 - Microsoft JScript 実行時エラー: オブジェクトは 'live' プロパティまたはメソッドをサポートしていません。』
0x800a01b6 - Microsoft JScript 実行時エラー: オブジェクトは 'live' プロパティまたはメソッドをサポートしていません。』
のエラーが発生します。
その他、自作のページでも同様に
などのエラーが発生してます。
私のところだけ? かもしれませんが、jQuery 1.9.0 への更新にはちょっと注意した方がよさそうです。
まずは取り急ぎのレポートです。
■■ 追記 ■■
その後、原因らしきものがわかりました。
jQuery 1.9.0 では、[.live]は削除されたそうです。
jQuery Core 1.9 Upgrade Guide
によると、
$("a.foo").live("click", fn), は例えば
$(document).on("click", "a.foo", fn)
置きかえるように記述されてます。
一方、MVCデフォルトのテンプレートで生成したプロジェクトには、ajaxのプラグインのjquery.unobtrusive-ajax.jsが組み込まれますが、このスクリプト内で、[.live]が使用されています。「登録」や「ログイン」ではこのjquery.unobtrusive-ajax.jsを使っている為、上記のエラーになります。自作のページでも、[.live]を使ってるページはみんなエラーになっています。
尚、GitHub上で
BlackPrincess さんにより以下のスクリプト