event.returnValue kullanımdan kaldırıldı. Lütfen bunun yerine standart event.preventDefault () yöntemini kullanın


222

Bu komut dosyası var:

<script>
$(document).ready(function () {
    $("#changeResumeStatus").click(function () {
        $.get("{% url 'main:changeResumeStatus' %}", function (data) {
            if (data['message'] == 'hidden') {
                $("#resumeStatus").text("скрыто");
            } else {
                $("#resumeStatus").text("опубликовано");
            }
        }, "json");
    });
});
</script>

Google Chrome konsolumda şu hatayı alıyorum:

event.returnValue kullanımdan kaldırıldı. Lütfen bunun yerine standart event.preventDefault () yöntemini kullanın.

Ben jQuery v1.10.2 kullanıyorum ve #changeResumeStatusbir <span>.

Senaryomun nesi yanlış?


19
Bence bu bir hata değil, sadece bir uyarı - bu güvenle göz ardı edilebilir.
Qantas 94 Heavy

32
Bu uyarı en son krom güncellemesini izliyor, endişelenmeyin
A. Wolff

2
Kaçan ascii olmayan dizelere bakmalısınız.
Gleno

4
@AlexParakhnevich Bunu yapmak için tek bir zorlayıcı sebep yok, ama zaman zaman sürünen birkaç küçük. Tepkim dürüst olmak gerekirse iyi düşünülmektense içgüdüseldi. Şu anda üzerinde çalıştığım projelerde, geçmişte oluşturduğum ascii olmayan karakterleri kullanmamaya yönelik bir kılavuz var, çünkü bazı harici araçlar (daktilo derleyici) bu girdiyi boğdu. Çoğu durumda yeterince iyi çalışır, ancak bazen işler ters gittiğinde çok fazla geliştirici zamanı tüketir. Her neyse, .empty().append("text")olarak daha iyi ifade edilir .text("text").
Gleno

1
@Gleno paylaşım için teşekkürler
Alex Parakhnevich

Yanıtlar:


204

Bu sadece bir uyarıdır: kodunuz hala çalışır, ancak yöntem kullanımdan kaldırıldığı için ileride muhtemelen çalışmaz. Bkz Krom ilgili kaynak ve ilgili yama .

Bu, jQuery 1.11'de zaten tanınmış ve düzeltilmiştir ( buraya bakın ve buraya ).


12
JQuery <1.11 kullanarak tüm sayfaların kırılmasına neden oluyorsa bu herkes yakında bu kesecek şüpheliyim.
Backpackcoder

26
Bu uyarı ayrıca jQuery 2.0.3 (bu yorumdan itibaren en son kararlı) ile görünür ve düzeltme için mevcut kilometre taşı 2.1'e ayarlanır.
counterbeing

JQuery 1.11 kullanmak sorunu çözecek mi?
Krunal

Sadece netleştirmek için ... jQuerygelmiştir değildir kullanarak kaldırılan return falsetıklama işleyicilerindeki? Bu Krom jQuery kütüphane içinde bulunan bir kod parçalarını şikayet?
06 Mart'ta

2
Aslında. Chrome event.returnValueyalnızca IE ile geriye dönük uyumluluk için kullanımdan kaldırıldı
Paul Mougel

22

Sadece başkalarının referansı için bunu aldım ve AngularJS'den kaynaklandığını gördüm . Geriye dönük uyumluluk içindir:

if (!event.preventDefault) {
    event.preventDefault = function() {
        event.returnValue = false; //ie
    };
}

4
Hiçbir açısal kullanılmakta veya başvurulan - muhtemelen dolaylı olarak atıfta bulunan çıplak kemikli bir sitede hata alıyorum, ancak şüpheliyim.
B. Clay Shannon

1
@ B.ClayShannon: Bu bir hata değil, bir uyarı. Özellikle bağlamımızda büyük bir fark var. Güvenli bir şekilde yok sayabilirsiniz.
f.ardelian

1
@ B.ClayShannon Eklerseniz, Chrome, sağladığınız bir komut dosyasıyla aynı şekilde ayrıştırır ve (doğru şekilde) uyarıyı atar.
iCodeSometime

20

Bootstrap kullanıyorsanız :

Bootstrap'ın (3.0.2) geçerli sürümü (jQuery 1.10.2 ve Chrome ile birlikte) bu uyarıyı da oluşturuyor gibi görünüyor.

(Bunu Twitter'da da yapıyor BTW.)

Güncelleme

Bootstrap'ın (3.1.0) geçerli sürümü artık bu uyarıyı oluşturuyor gibi görünmüyor.



6

Bu, çoğu JavaScript çerçevesinin (jQuery, Angular, YUI, Bootstrap ...) IE8'den IE6'ya kadar eski en nefret edilen Internet Explorer için geriye dönük destek sunmasıyla ilgili bir uyarıdır: /

Bir gün geriye dönük uyumluluk desteği kaldırılacaktır ( IE9 onunla ilgilenmesinden beri IE8 / 7/6 için) ve artık bu uyarıyı (ve diğer IEish hatalarını) görmeyeceksiniz.

Bu bir zaman meselesi (şimdi IE8 dünya çapında% 10 paya sahip, % 1'e ulaştığında ÖLÜ ), bu arada, sadece uyarıyı görmezden gel ve zen kal :)


jQuery 2.xx yalnızca IE9 ve sonraki sürümleri destekler. JQuery'de IE8 desteği istiyorsanız, sürüm 1.xx
Pete


3

Bu uyarıyı birçok web sitesinde gördüm. Ayrıca, YUI 3 kütüphanesinin de aynı uyarıyı verdiğini gördüm . Bu, kütüphaneden oluşturulan bir uyarıdır (jQuery veya YUI olsun).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.