event.returnValue को हटा दिया गया है। कृपया इसके बजाय मानक event.preventDefault () का उपयोग करें


222

मेरे पास यह स्क्रिप्ट है:

<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 कंसोल में निम्न त्रुटि प्राप्त हुई है:

event.returnValue को हटा दिया गया है। कृपया इसके बजाय मानक event.preventDefault () का उपयोग करें।

मैं jQuery v1.10.2 का उपयोग कर रहा हूं और #changeResumeStatus<span>

मेरी स्क्रिप्ट में क्या गलत है?


19
मुझे लगता है कि यह एक त्रुटि नहीं है, लेकिन केवल एक चेतावनी है - इसे सुरक्षित रूप से अनदेखा किया जा सकता है।
कांतास 94 हेवी

32
यह चेतावनी नवीनतम क्रोम अपडेट का अनुसरण कर रही है, चिंता न करें
ए। वोल्फ

2
आपको गैर-अस्सी के तार से बचकर देखना चाहिए।
9

4
@AlexParakhnevich ऐसा करने के लिए कोई भी सम्मोहक कारण नहीं है, लेकिन कुछ छोटे लोग जो समय-समय पर रेंगते हैं। ईमानदार होने के बजाय मेरी प्रतिक्रिया सहज थी। जिन परियोजनाओं में मैं अभी काम कर रहा हूँ, वहाँ शाब्दिक रूप से गैर-आस्की चर का उपयोग नहीं करने के लिए एक दिशानिर्देश है, जिसे मैंने अतीत में स्थापित किया था, क्योंकि कुछ बाहरी उपकरण (टाइपस्क्रिप्ट कंपाइलर) ऐसे इनपुट पर घुट जाते थे। यह ज्यादातर मामलों में अच्छी तरह से काम करता है, लेकिन कभी-कभी बहुत सारे डेवलपर समय खा जाते हैं जब चीजें गलत हो जाती हैं। वैसे भी, .empty().append("text")बेहतर के रूप में व्यक्त किया जाता है .text("text")
ग्लेनो

1
@Gleno साझा करने के लिए धन्यवाद
एलेक्स Parakhnevich

जवाबों:


204

यह केवल एक चेतावनी है: आपका कोड अभी भी काम करता है, लेकिन संभवत: भविष्य में काम नहीं करेगा क्योंकि यह विधि पदावनत है। क्रोमियम और संबंधित पैच का प्रासंगिक स्रोत देखें ।

यह पहले से ही jQuery 1.11 में पहचाना और तय किया गया है ( यहां और यहां देखें )।


12
मुझे संदेह है कि यह किसी को भी जल्द ही टूट जाएगा अगर इसका मतलब है कि सभी पृष्ठों को तोड़ने के लिए JQuery <1.11 का उपयोग करना है।
Backpackcoder

26
यह चेतावनी jQuery 2.0.3 (इस टिप्पणी के अनुसार सबसे हाल ही में स्थिर) के साथ भी दिखाई देती है, और वर्तमान मील का पत्थर ठीक करने के लिए 2.1 पर सेट है।
counterbeing

क्या jQuery 1.11 का उपयोग करने से समस्या ठीक हो जाएगी?
क्रुणाल

बस स्पष्ट करने के लिए ... jQueryक्या आपके क्लिक हैंडलर का उपयोग नहीं किया गया है return false? यह क्रोम jQuery लाइब्रेरी के अंदर पाए गए कोड के एक स्निपेट के बारे में शिकायत कर रहा है?
मपेन

2
वास्तव में। क्रोम ने event.returnValue
वंचित

22

अन्य संदर्भों के लिए, मुझे बस यह प्राप्त हुआ और पाया कि यह एंगुलरजेएस के कारण था । यह पश्चगामी संगतता के लिए है:

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

4
मुझे नंगे हड्डियों वाले स्थान पर त्रुटि हो रही है जिसका कोई कोणीय उपयोग नहीं किया गया है या संदर्भित किया गया है - संभवतः अप्रत्यक्ष रूप से संदर्भित है, लेकिन मुझे संदेह है।
बी क्ले शैनन

1
@ B.ClayShannon: यह एक त्रुटि नहीं है, यह एक चेतावनी है। विशेष रूप से हमारे संदर्भ में एक बड़ा अंतर है। आप इसे सुरक्षित रूप से अनदेखा कर सकते हैं।
f.ardelian

1
@ B.ClayShannon यदि आप इसे बिल्कुल भी शामिल करते हैं, तो क्रोम इसे उसी तरह पार्स करेगा जैसे कि वह एक स्क्रिप्ट थी जिसे आपने आपूर्ति की थी, और (सही ढंग से) चेतावनी फेंक दें।
कोड्सोमेटाइम

20

यदि आप बूटस्ट्रैप का उपयोग कर रहे हैं :

बूटस्ट्रैप (3.0.2) (jQuery 1.10.2 और क्रोम के साथ) का वर्तमान संस्करण भी इस चेतावनी को उत्पन्न करता है।

(यह ट्विटर पर भी ऐसा करता है, BTW।)

अपडेट करें

बूटस्ट्रैप (3.1.0) का वर्तमान संस्करण अब इस चेतावनी को उत्पन्न नहीं करता है।



6

यह इस तथ्य से संबंधित चेतावनी है कि अधिकांश जावास्क्रिप्ट चौखटे (jQuery, कोणीय, YUI, बूटस्ट्रैप ...) IE8 से IE6 के लिए शुरू होने वाले पुराने-सबसे-नफ़रत वाले इंटरनेट एक्सप्लोरर के लिए पिछड़े समर्थन की पेशकश करते हैं: /

एक दिन है कि पिछड़े संगतता समर्थन को गिरा दिया जाएगा (IE8 / 7/6 के लिए क्योंकि IE9 इसके साथ संबंधित है ), और आप इस चेतावनी (और अन्य IEish बग) को और अधिक नहीं देख पाएंगे।

यह समय का सवाल है (अब IE8 में दुनिया भर में 10% हिस्सा है, एक बार यह 1% तक पहुंच जाता है ), इस बीच, बस चेतावनी को अनदेखा करें और ज़ेन बने रहें :)


jQuery 2.xx केवल IE9 और ऊपर का समर्थन करता है। यदि आप j8 में IE8 समर्थन चाहते हैं, तो आपको संस्करण 1.xx
पीट

3

मैंने पाया कि नवीनतम संस्करण का उपयोग करने से यह समस्या ठीक हो जाएगी:
http://code.jquery.com/jquery-git.js


3

मैंने कई वेबसाइटों पर यह चेतावनी देखी। इसके अलावा, मैंने देखा कि YUI 3 लाइब्रेरी भी यही चेतावनी देती है। यह लाइब्रेरी से उत्पन्न चेतावनी है (चाहे वह jQuery हो या YUI)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.