2015-07-28 9 views
5
$(".filter-close").click(function(){ 
    $(this).parent().remove(); 

}); 

यह स्निपेट कंसोल में काम करता है लेकिन न तो स्क्रिप्ट टैग में और न ही संलग्न जेएस फ़ाइल में।jquery code कंसोल पर काम करता है लेकिन स्क्रिप्ट टैग में या संलग्न जेएस फ़ाइल में नहीं

+0

कृपया कम से कम प्रति + पृष्ठ के लिए कोड पेस्ट अपने उस पर का उपयोग कर , और यह देखने के लिए F12 पर क्लिक करें कि dev console में कोई त्रुटि है या नहीं। –

+0

स्क्रिप्ट टैग या संलग्न जेएस फ़ाइल में चलाने पर आपको क्या त्रुटि मिल रही है? – D4V1D

+1

मुझे मूर्खतापूर्ण लेकिन यह सवाल दो अपवॉट क्यों प्राप्त करता है ??? –

उत्तर

7

डोम के लिए प्रतीक्षा करें जब आपके ईवेंट हैंडलर बुला तैयार होने के लिए:

jQuery(function($) { // this does the trick and also makes sure jQuery is not conflicting with another library 
    $(".filter-close").click(function(){ 
     $(this).parent().remove(); 
    }); 
}); 

एक और JavaScript लाइब्रेरी का उपयोग करते हैं, हम $ .noConflict() कॉल करने के लिए नाम स्थान कठिनाइयों से बचने के लिए कर सकते हैं। जब इस फ़ंक्शन को कॉल किया जाता है, तो $ शॉर्टकट अब उपलब्ध नहीं होता है, हर बार जब हम सामान्य रूप से $ लिखते हैं तो हमें jQuery लिखने के लिए मजबूर किया जाता है। हालांकि, हैंडलर .ready() विधि को पारित किया गया एक तर्क ले सकता है, जो वैश्विक jQuery ऑब्जेक्ट को पारित कर दिया गया है। इसका मतलब यह है कि हम अन्य कोड

Documentation for .ready() method को प्रभावित किए बिना हमारे .ready() हैंडलर के संदर्भ में वस्तु का नाम बदल सकते

+0

क्योंकि ओपी ने कहा कि कंसोल में कोड काम करता है, हम मान सकते हैं कि '$' पहले से ही jQuery का जिक्र कर रहा है लेकिन यह अभी भी अच्छी जानकारी है –

+1

@ ए। वोल्फ: निश्चित रूप से, मैं बस कुछ अन्य जवाबों को इंगित करना चाहता था उल्लेख नहीं किया :) – D4V1D

-1

शायद इस समारोह को कॉल करते समय filter-close कक्षा के साथ तत्व डीओएम में मौजूद नहीं है। मुझे लगता है कि आप गतिशील रूप से डोम में तत्व जोड़ रहे हैं। क्या आप?

+0

यह कोई जवाब नहीं है, यह केवल एक टिप्पणी है। – D4V1D

+1

मुझे लगता है कि यह दोनों है। –

+0

@UjwalRatra - यह दोनों हो सकता है, लेकिन एसओ guidlines स्पष्ट है कि एक जवाब सवाल का जवाब देना चाहिए, अगर आप गतिशील रूप से जोड़ा गया था, तो कोड के उदाहरण शामिल किया गया है, तो शायद यह एक जवाब है - अन्यथा यह केवल एक टिप्पणी है –

2

ईवेंट हैंडलर संलग्न होने पर डीओएम में उपस्थित होने का मुद्दा हो सकता है।

कुछ इस तरह का प्रयास करें:

$(document).ready(function() { 
    // Handler for .ready() called. 

    $(".filter-close").click(function(){ 
     $(this).parent().remove(); 

    }); 

}); 

$ .ready() (नीचे दिए गए लिंक) सुनिश्चित करता है कि यह पहले डोम, प्रदान की गई है OnLoad के समान हैंडलर जोड़ने के लिए कोड को कॉल करने की कोशिश नहीं करता है।

Documentation for JQuery .ready() method

भी संभावित पुस्तकालय संघर्ष कर रहे हैं (@ है कि उदाहरण के लिए D4V1D उत्तर देखें), लेकिन हम नहीं कर सकते और आदर्श जानते हुए भी क्या त्रुटि संदेश के बिना निश्चित रूप से कह कंसोल में दिखाई दे रहा है (यदि हो तो) आसपास के कोड के बारे में अधिक जानकारी।

कृपया एफ 12 दबाएं और देखें कि कंसोल और/या नेटवर्क पैनल में क्या मुद्रित किया जा रहा है, या Google "ब्राउज़र नाम देव कंसोल" अगर F12 कुछ भी नहीं करता है।

लेकिन, जैसा कि कहा कि यह कंसोल में काम करता है, तो मैं आप डेव कंसोल मतलब मान लेते हैं और यह वास्तव में सिर्फ एक समय मुद्दा है, इसलिए संभावना नहीं एक संघर्ष है कि (हालांकि अभी भी हो सकता है सिंटेक्स त्रुटि कहीं पेज पर सब)

संबंधित मुद्दे