javascript - event.preventDefault() बनाम वापसी झूठी(कोई jQuery नहीं)




events javascript-events (2)

PreventDefault, stopPropogation के बीच अंतर, झूठी वापसी

डिफ़ॉल्ट क्रिया - जब नियंत्रण घटना बढ़ती है तो सर्वर साइड एक्शन।

मान लें कि हमारे पास div नियंत्रण है और इसके अंदर हमारे पास एक बटन है। तो div बटन का मूल नियंत्रण है। हमारे पास क्लाइंट साइड क्लिक और सर्वर साइड बटन की घटना पर क्लिक करें। इसके अलावा हमारे पास div की क्लाइंट साइड क्लिक इवेंट है।

क्लाइंट साइड पर बटन की क्लिक इवेंट पर, हम निम्नलिखित तीन तरीकों से पेरेंट कंट्रोल और सर्वर साइड कोड के कार्यों को नियंत्रित कर सकते हैं:

  • return false - यह केवल नियंत्रण के क्लाइंट साइड इवेंट की अनुमति देता है। सर्वर साइड इवेंट और पैरेंट कंट्रोल के क्लाइंट साइड इवेंट को निकाल दिया नहीं जाता है।

  • preventDefault() - यह क्लाइंट साइड इवेंट नियंत्रण और उसके अभिभावक नियंत्रण की अनुमति देता है। सर्वर साइड इवेंट यानी। नियंत्रण की डिफ़ॉल्ट कार्रवाई को निकाल दिया नहीं जाता है।

  • stopPropogation() - यह क्लाइंट साइड के साथ-साथ नियंत्रण के सर्वर साइड इवेंट की अनुमति देता है। नियंत्रण की ग्राहक पक्ष घटना की अनुमति नहीं है।

मुझे आश्चर्य हुआ कि event.preventDefault() और return false वही थी।

मैंने कुछ परीक्षण किए हैं , और ऐसा लगता है

  • यदि ईवेंट हैंडलर पुराने मॉडल का उपयोग करके जोड़ा जाता है, उदाहरण के लिए

    elem.onclick = function(){
        return false;
    };
    

    फिर, return false डिफ़ॉल्ट कार्रवाई को रोकती है, जैसे event.preventDefault()

  • यदि ईवेंट हैंडलर addEventListener का उपयोग करके जोड़ा गया है, उदाहरण के लिए

    elem.addEventListener(
        'click',
        function(e){
            return false;
        },
        false
    );
    

    फिर, return false डिफ़ॉल्ट कार्रवाई को रोक नहीं है।

क्या सभी ब्राउज़र इस तरह व्यवहार करते हैं?

event.preventDefault() बीच और अंतर हैं और return false ?

कुछ मामलों में event.preventDefault() जैसे return false व्यवहार की return false बारे में मुझे कुछ दस्तावेज (मैं event.preventDefault() में नहीं कर सकता) कहां मिल सकता हूं?

मेरा प्रश्न केवल सादे जावास्क्रिप्ट के बारे में है, jQuery नहीं, इसलिए कृपया इसे event.preventDefault () बनाम झूठी वापसी के डुप्लिकेट के रूप में चिह्नित न करें, भले ही दोनों प्रश्नों का लगभग एक ही शीर्षक हो।


return false सिर्फ आईई के लिए है, event.preventDefault() क्रोम, एफएफ ... आधुनिक ब्राउज़र द्वारा समर्थित है







preventdefault