8

jqueryでクロスブラウザの問題に直面しています。調査の結果、アプリがjquery 1.8.11で動作していることがわかりました。少なくとも、そう思います。

私のプロジェクトは、c#を使用したMVC4asp.netアプリです。

実際、私は無効にしようとしています-いくつかのボタンを有効にします。IEでは正常に動作しますが、chrome / firefox/safariでは動作しません。

<ul class="ui-grid-d">
<li class="ui-block-a"><a id="MostrarDetallePedido" class="ui-btn ui-btn-up-a" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="a" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Detalle</span></span></a></li>
<li class="ui-block-b"><a id="ItemCondiciones" class="ui-state-disabled ui-btn ui-btn-up-b" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="b" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Condiciones</span></span></a></li>
<li class="ui-block-c"><a id="ItemEliminar" class="ui-state-disabled ui-btn ui-btn-up-c" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="c" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Eliminar</span></span></a></li>
<li class="ui-block-d"><a id="ItemAdiciones" class="ui-state-disabled ui-btn ui-btn-up-d" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="d" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Adiciones</span></span></a></li>
<li class="ui-block-e"><a id="ItemComponentes" class="ui-state-disabled ui-btn ui-btn-up-e" disabled="disabled" href="/Documentos/Docs/DocsDetalle?StrIdDocumento=01500___00000000000000041" data-role="button" data-theme="e" data-ajax="false"><span aria-hidden="true" class="ui-btn-inner"><span class="ui-btn-text">Componentes</span></span></a></li> 
</ul>​

やってみた

$('#ItemEliminar').addClass('ui-disabled');​

この方法で

$('#ItemEliminar').button({ disabled: false }).button('enable').button('refresh');

http://jsfiddle.net/9386M/1/で独自のスクリプトを使用していくつかのテストを行いましたが、jquery1.8.2で正常に機能します。

さて、私が知る必要があるのは、jqueryライブラリを変更する方法だけです。私は_Layout.cshtmlを見ていましたが、jqueryライブラリへの参照が見つかりません。

スクリプトフォルダで、jquery-ui-1.8.11.js jquery-ui-1.8.11.min.jsjquery-1.6.4.jsjquery-1.6.4.min.jsを見つけました

4

2 に答える 2

11

これを行うには 2 つの方法があります。

  1. ソリューションを右クリックし、[NuGet パッケージの管理...] を選択し、開いたダイアログの [更新] に移動して、jQuery を更新します。

  2. そこからjQuery参照に移動し/App_Start/BundleConfig.csて更新します。/Scripts/また、適切なバージョンの jQuery ライブラリをフォルダーに配置する必要があります。

また、「jQuery」文字列のすべてのソリューションをいつでも検索できます ( Ctrl+ Shift+を押して、「検索対象F」コンボボックスで「ソリューション全体」を選択します)。

于 2012-11-19T22:40:28.960 に答える
3

MVC4 はバンドルを使用します。

App_Start に移動します => BunlingConfig.cs を開きます

以下のようなものが表示されます。

   // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery-ui-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

       // and bunch of other bundles

    }

ここの最初の行は、jQuery のバンドルを作成します。

以下に変更できます。

     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-1.8.2.min.js"));

CDN を使用する場合は、ライブラリがダウンロードされていることを確認してください。次のようにします。

        bundles.UseCdn = true;  

        const string jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js";

        bundles.Add(new ScriptBundle("~/bundles/jquery",
                                     jqueryCdnPath).Include("~/Scripts/jquery-{version}.js"));

ファイルのバンドルを作成することもできます。ここで詳細を読むことができますhttp://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4

レイアウト ファイルでは、以下のように消費されます。

      @Scripts.Render("~/bundles/jquery")

お役に立てれば。

于 2012-11-19T22:49:09.507 に答える