2012-11-19 58 views
7

我正面對一些跨瀏覽器問題與jQuery,經過一些研究,我發現我的應用程序正在與jQuery 1.8.11或至少我認爲是這樣的。asp.net mvc4更改jquery版本

我的項目是一個MVC4 asp.net應用程序與C#。

其實我試圖禁用 - 啓用一些按鈕,它在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>​ 

我tryed

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

這種方式

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

我做了http://jsfiddle.net/9386M/1/一些測試,與我們自己的腳本,它做工精細用jQuery 1.8.2。

嗯,我需要知道的是如何更改我的jQuery庫,我正在看_Layout.cshtml,但我找不到任何對我的jquery庫的引用。

在腳本文件夾中,我發現 的jQuery-UI-1.8.11.js 的jQuery-UI-1.8.11.min.js jQuery的1.6.4.js jQuery的1.6.4.min.js

回答

11

兩種方法可以做到這一點:

  1. 右鍵單擊您的解決方案,選擇「管理的NuGet包...」,進入「更新」在打開的對話框中,並更新了jQuery。

  2. 轉到/App_Start/BundleConfig.cs並從那裏更新jQuery參考。您還需要將適當版本的jQuery庫放到/Scripts/文件夾中。

而你總是可以在所有的解決方案搜索「jQuery的」串(按按Ctrl + + ˚F並在「查找範圍」下拉框中選擇「整個解決方案」)

+2

我正在使用MVC4,我只需要完成第1步就可以工作。 – Sgraffite

+0

^^這是因爲BundleConfig.cs中的包使用 - {version}映射到正則表達式以始終獲取最新版本。 – eaglei22

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") 

希望這有助於。

+0

很tks,我正在嘗試。 –

+0

@JuanPabloGomez Np。讓我知道是否有問題。 – Yogiraj