私は ASP.NET MVC 4 アプリケーションに取り組んでいます。
プロジェクト内の jQuery、jQuery UI、およびその他すべての nuget パッケージを更新しました。ビルドして実行し、問題が発生していないことを確認しました。すべてうまくいったので、数日間開発を続けました。
しばらくして、プロジェクトをテスト サーバーに公開し、Ipad や Iphone などでどのように表示されるかを確認する必要がありました。その後、jQuery-UI アコーディオンが機能しなくなったことに気付きました。
レンダリングされますが、クリックしても反応しません。これはすべてのブラウザに当てはまります。唯一の違いは、私がリリースモードで適用したMVCバンドルであり、私が理解している限り、jQueryファイルを縮小するか、縮小バージョンを選択することであるため、これは奇妙であることがわかりました(後者は、更新時に追加されるため、おそらくここで何をしているのかナゲットを使用)。
jQuery のバージョンは次のとおりです: 2.0.3
jQuery-ui のバージョンは 1.10.3 です。
Chrome コンソールでは、次のエラーが表示されます。
キャッチされていない TypeError: 未定義のプロパティ 'safari' を読み取ることができません
わかりました。これは、私の jQuery アセンブリの 1 つが $.browser を参照している可能性があることを認識しています。これは明らかに jQuery 1.9 で削除されました。
ただし、デバッグ モードで (縮小されていないバージョンを使用して) 動作するという事実から、そうではないのではないかと思います。縮小版の問題かと思いきや、そんなこともあり得ない。
なぜこれが起こるのか、そしてそれを修正する方法を知っている人はいますか?
更新 要求に応じて、ほとんどのコードを添付します。奇妙なことに、これはデバッグ モードでは機能しますが、リリース モードでは機能しません。この問題を引き起こす重要な変更がある理由がわかりません。
_Layout.cshtml
Bundleconfig.cs
ビュー (部分ビューを呼び出します)
部分的なビュー
jquery コード
Chrome の JavaScript エラー
クロムのエラーの拡大表示
追加するだけです。これを投稿した後、modernizr の重複ロードを削除しました (telek カスタム ロードは気付かないうちに追加されていました)。問題はまだ解決していません。
更新 2 bundleconfig の最適化をオフにしました。
BundleTable.EnableOptimizations = false;
これにより、jquery-ui で何がエラーをスローしているのかを確認できました。実際、削除されたのは $.browser のようです。実際には、jquery の 2 つの古いバージョン (現在 + 1.6.4 および 1.7.1) と、新しい 1 つおよび 2 つのバージョンの jquery-ui (現在 + 1.8.16) を一緒にロードして、最後にエラーをスローしたようです。これらのファイルは、ソリューションまたはファイル フォルダーに読み込まれません。
これは公開の問題のようですが、バンドルと縮小によって偽装されています...これを修正して、機能するかどうかを確認します。