2013-01-16 24 views
29

Son zamanlarda ASP.NET MVC 4'ü kullanmak için bir web sitesini yeni sürüme geçirdim ve jQuery doğrulama paketimi oluşturmak için aşağıdaki koda sahibim. Bir metin kutusuna tıklandığındaASP.NET MVC 4 jQuery Doğrulama Komut Dosyası Paketi Çalışmıyor

Microsoft JScript runtime error: Object doesn't support property or method 'live' 

Ve bu hatayı:

Unhandled exception at line 1234, column 5 in http://localhost:13112/Scripts/jquery.validate.js 

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'call': object is null or undefined 

Benim paket kodu:

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

Benim _Layout.cshtml

Ama aşağıdaki hatayı alıyorum kodu:

@Styles.Render("~/Content/css") 
    @Styles.Render("~/Content/themes/base/css") 
    @Scripts.Render("~/bundles/jquery") 
    @Scripts.Render("~/bundles/jqueryval") 
    @Scripts.Render("~/bundles/jqueryui") 
    @Scripts.Render("~/bundles/modernizr") 
01 İşte

benim render HTML:

<link href="/Content/site.css" rel="stylesheet"/> 

     <link href="/Content/themes/base/jquery.ui.core.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.resizable.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.selectable.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.accordion.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.autocomplete.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.button.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.dialog.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.slider.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.tabs.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.datepicker.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.progressbar.css" rel="stylesheet"/> 
<link href="/Content/themes/base/jquery.ui.theme.css" rel="stylesheet"/> 

     <script src="/Scripts/jquery-1.9.0.js"></script> 

     <script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 

     <script src="/Scripts/jquery-ui-1.9.2.js"></script> 

     <script src="/Scripts/modernizr-2.6.2.js"></script> 

bu hata meydana olabilir neden birisi işaret edebilir?

Teşekkürler, Alex.

+0

, ilk işlenen paketler/jquery olup olmadığını kontrol ettiniz mi? Herhangi bir kitaplıktan önce yüklendiğinden emin olun –

+0

İşlenen HTML'yi soruna ekledikten sonra, orada bir şey görebiliyor musunuz? –

cevap

49

.live yöntemi jQuery v1.7 + 'de kullanımdan kaldırıldı ve jQuery v1.9 +' da kaldırıldı.

muhbirleri: http://bugs.jquery.com/ticket/13213 Açıklama
:

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

Güncelleme

: jquery migrate plugin indirin ve bohçalama ekleyin: http://jquery.com/upgrade-guide/1.9/#live-removed

.live() removed

The .live() method has been deprecated since jQuery 1.7 and has been removed in 1.9. We recommend upgrading code to use the .on() method instead. To exactly match $("a.foo").live("click", fn), for example, you can write $(document).on("click", "a.foo", fn). For more information, see the .on() documentation. In the meantime, the jQuery Migrate plugin can be used to restore the .live() functionality.

Nasıl düzeltilir geçirmek eklentisi artık kullanılabilir Nuget'den ayrıca:

PM> Install-Package jQuery.Migrate

+0

Ah buna ekliyor, orada olmamasının farkında değildi. Ancak başka bir hata alıyorum (soruya eklendi), bana neyin neden kaynaklandığını bana söyleyebilir misiniz? –

+0

Yanıt güncellendi. –

+0

O el ile eklenmiyor, bu Scripts.Render() –

İlgili konular