喜帳面の日記

50歳越えおやじのASP.NET MVC への挑戦日記です。

Visual Studio Express 2012 for Web でいってみる 20.番外編 jquery-1.9.0 への更新?でJavascript エラーに

 

Visual Studio Express 2012 for Web MVC4 -Razor で開発してるんですが、
NuGetパッケージの管理でパッケージの更新したら、Javascriptでエラーが発生するようになってしまいました。。原因不明です。
試しに、
新しいプロジェクトを「ASP.NET MVC4 Webアプリケーション」-「インターネットアプリケーション」,Razor のテンプレートで作成し、デバッグモードでログインや登録のページが開くことは確認できました。この時点で
jquery-1.7.1.js
etc.がセットされます。
その後[ツール]-[ライブラリパッケージマネージャー]
「ソリューションのNuGetパッケージの管理」の更新プログラムから
jQuery 1.9.0 を更新して、デバッグモード実行しHome-Indexより「登録」や「ログイン」をクリックすると
 
『ハンドルされない例外 下記ソースコードの行 115、列 5 で発生しました。 http://localhost:56603/Scripts/jquery.unobtrusive-ajax.js
0x800a01b6 - Microsoft JScript 実行時エラー: オブジェクトは 'live' プロパティまたはメソッドをサポートしていません。』
のエラーが発生します。
その他、自作のページでも同様に
『0x800a138f - Microsoft JScript 実行時エラー: プロパティ 'msie' の値を取得できません: オブジェクトは Null または未定義です。』
などのエラーが発生してます。
私のところだけ? かもしれませんが、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]を使ってるページはみんなエラーになっています。
MSによるjquery.unobtrusive-ajax.jsの更新を待つしかないのかな。。。
尚、GitHub上で
BlackPrincess さんにより以下のスクリプト
jquery.unobtrusive-ajax.jsがJQuery 1.9.0でエラーが出てたので、とりあえずエラーだけ消したやつ』
が公開されてます。
私は、今すぐjQuery 1.9.0 が必要ってわけではないのでしばらく待ってみます。
以上です。