2012-09-04 41 views
27

मैं एक विषय में एक .js दस्तावेज़ में कोई त्रुटि हो सकता है नहीं है मैं खरीद है:

$('.tagcloud a').wrap('<span class="st_tag" />'); 

मैं इसे हल करने के लिए कोशिश कर रहा हूँ, लेकिन मैं एक प्रोग्रामर तो मैं डॉन 'नहीं कर रहा हूँ टी कैसे पता है। साइट यह है: http://www.framerental.com

+0

ईमानदारी से कहूं तो अगर आप विषय के लिए भुगतान किया है और आप अपनी साइट के लिए कई अन्य अनुकूलन नहीं किया है (जैसा कि आप अल के बाद एक प्रोग्रामर नहीं कर रहे हैं एल) मैं उनके समर्थन से संपर्क करूंगा – TommyBs

उत्तर

-3

jQuery शायद गायब हो सकता है।

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

+0

यह संभव है लेकिन वर्डप्रेस और अधिकांश सीएमएस $ डिफ़ॉल्ट रूप से सेट नहीं है। –

0

आप jQuery शामिल किया है, वहाँ एक संघर्ष हो सकता है। $ के बजाय jQuery का उपयोग करने का प्रयास करें।

90

आप jQuery.noConflict(); का उपयोग करते हैं तो $ अपरिभाषित है।

jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
}); 
+0

ठीक है !! अब कुछ काम करता है लेकिन अन्य त्रुटि प्रकट होती है: रेफरेंसर रेजीज़ा विंडो परिभाषित नहीं है। रेखा: jQuery (विंडो)। बाइंड ("आकार बदलें", आकार बदलें विन्डो); फ़ंक्शन का आकार बदलें विन्डो (ई) { var newWindowWidth = jQuery (विंडो)। Width(); – user1645326

+0

बाइंड अभिव्यक्ति से पहले फ़ंक्शन को परिभाषित करने का प्रयास करें। – jurka

+0

थीम की पुरानी "enqueued" jQuery पर टिप्पणी करने के बाद यह मेरी सभी त्रुटियों को पुरानी WP थीम के साथ ठीक कर दिया। स्पष्ट रूप से, मुझे "wp_enqueue_script" प्रणाली वास्तव में परेशान, समृद्ध, अत्यधिक जटिल और अनावश्यक लगता है। मेरी इच्छा है कि वर्डप्रेस व्यवस्थापक पैनलों के लिए अपने स्वयं के जेएस कोड को छिपाए/विभाजित कर दे और jQuery का उपयोग करने के तरीके से बाहर निकलें, हम इसका उपयोग कैसे करना चाहते हैं। क्या "wp_enqueue_script" Google पेजस्पेड अंतर्दृष्टि परीक्षण पास करता है? शायद ऩही। या तो एक ही jQuery का उपयोग करने के लिए सभी WP प्लगइन और थीम की आवश्यकता होती है - तो सभी एक ही पृष्ठ पर होंगे और हम सभी एक साथ आगे बढ़ सकते हैं। –

9

या तो आप सहित नहीं कर रहे हैं jQuery टूलकिट/lib:

आप इसके बारे में अधिक यहाँ इस तरह से अपने कोड को संशोधित करने docs

कोशिश पढ़ सकते हैं (तैयार कार्य करने के लिए $ का चिह्न) , जैसा कि कुछ ने सुझाव दिया है, या एक तरह का संघर्ष है। परीक्षण करने के लिए: इस तरह jQuery और परीक्षण में शामिल हैं:

console.log($); 
console.log($ === jQuery); 

तो $ अपरिभाषित नहीं है, और $ === jQuery लॉग झूठी, आप निश्चित रूप से अपने हाथों पर-अलग है। को jQuery के साथ हल करने से हल हो जाता है, लेकिन यह काफी कठिन हो सकता है (वह अतिरिक्त टाइपिंग ...)। आमतौर पर मैं अपनी स्क्रिप्ट को $jq = _$ = jQuery; के साथ शुरू करता हूं ताकि कम से कम jQuery ऑब्जेक्ट का संक्षिप्त संदर्भ हो। बेशक
, इससे पहले कि आप कि, अगर आप गलती से चर कि पहले से स्थापित किए गए हैं अधिभावी नहीं कर रहे हैं देखने के लिए जाँच करें: console.log($jq, _jQ, _$); जो भी नहींundefined अकेला छोड़ दिया जाना चाहिए, निश्चित रूप से

+0

एलियास आपको जवाब लगता है लेकिन जब तक मैं प्रोग्रामर नहीं हूं, मुझे लगता है कि आप चंचलता में बात कर रहे हैं। क्या मेरे लिए कोई आसान समाधान है? मैं पूरी तरह से खो गया हूं :-( – user1645326

+0

@ user1645326: हां, वहाँ है। जुर्का के उत्तर के नीचे आपकी टिप्पणी मुझे बताती है कि आप या तो रैपर 'jQuery (दस्तावेज़) के अंदर सभी जेक्यू कोड लिख रहे हैं। पहले (फ़ंक्शन ($) { 'फ़ंक्शन, जो आपको करना चाहिए। साथ ही,' आकार बदलें 'को इसे $ ($) से जोड़ना चाहिए। width();' बल्कि फिर 'jQuery (विंडो) .with();' लेकिन शायद सबसे महत्वपूर्ण बात: त्रुटि कहती है यह सब: आपके कोड में एक टाइपो है: बस 'resiza विंडो' के लिए अपना कोड खोजें, और इसे' आकार बदलें 'के साथ बदलें ... –

23

समारोह त्रुटियों एक आम बात कर रहे हैं लगभग सभी सामग्री प्रबंधन प्रणालियों में और कुछ तरीकों से आप इसका संपर्क कर सकते हैं।

  1. का उपयोग कर अपने कोड लपेटें:

    <script> 
    jQuery.noConflict(); 
        (function($) { 
         $(function() { 
          // YOUR CODE HERE 
         }); 
        }); 
    </script> 
    
    :

    <script> 
    jQuery(function($) { 
    
    YOUR CODE GOES HERE 
    
    }); 
    </script> 
    
  2. तुम भी noConflict();

    <script> 
    $.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 
    // Code that uses other library's $ can follow here. 
    </script> 
    
  3. दस्तावेज़ तैयार का उपयोग किए बिना noConflict का उपयोग करने का एक और उदाहरण का उपयोग कर jQuery के एपीआई का उपयोग कर सकते हैं

  4. तुम भी तो जैसे टकराव से बचने के लिए अपने बहुत उर्फ ​​बनाने का निर्णय ले सकता है:

    $("div p").hide();jQuery("div p").hide();

  5. रहे हैं:

    var jExample = jQuery.noConflict(); 
    // Do something with jQuery 
    jExample("div p").hide(); 
    
  6. फिर भी एक और लंबे समय तक समाधान jQuery के लिए $ के सभी referances नाम बदलने के लिए है

6

बस इस जोड़ें:

<script> 
var $ = jQuery.noConflict(); 
</script> 

header.php में मुख्य टैग पर। या यदि आप व्यवस्थापक क्षेत्र में डॉलर चिह्न का उपयोग करना चाहते हैं (या कहीं, जहां header.php का उपयोग नहीं किया जाता है), उस स्थान से ठीक पहले आप इसका उपयोग करना चाहते हैं।

(वहाँ कुछ मतभेद है कि मैं के बारे में पता नहीं कर रहा हूँ हो सकता है यह परीक्षण करने और देखते हैं अगर, यहाँ या लिंक bellow की पेशकश की अन्य समाधान का उपयोग करें।)

स्रोत: http://www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/

+0

यह काम करता है अगर आप पाद लेख में अपनी खुद की कस्टम थीम स्क्रिप्ट को एनक्यू करते हैं। – Turbojohan

9

इसके बजाय ऐसा करने का:

$(document).ready(function() { }); 

आप यह कर किया जाना चाहिए:

jQuery(document).ready(function($) { 

    // your code goes here 

}); 

ऐसा इसलिए है क्योंकि वर्डप्रेस, भविष्य में, या अब jQuery के अलावा किसी अन्य चीज़ के लिए $ का उपयोग कर सकता है, और इसलिए आपको jQuery को इस तरह से लोड करने की आवश्यकता है कि $ केवल एक jQuery दस्तावेज़ तैयार कॉलबैक में उपयोग किया जा सके।

+0

यह बहुत अच्छा काम करता है doc.ready के भीतर कुछ भी। अगर आप इसे बोर्ड (खिड़की के कार्यों) में चाहते हैं, तो ऊपर सेवेज के उत्तर को देखें। – cbloss793

4

मैं एक कस्टम स्क्रिप्ट फ़ाइल कि head अनुभाग के अंत में लोड जोड़ा, और शीर्ष पर निम्न डाला:

(function (jQuery) { 
    window.$ = jQuery.noConflict(); 
})(jQuery); 

2

अलावा (यह Fanky के जवाब का एक संशोधन है) noConflict, यह उपयोगी भी है:

(function($) { 
    // Variables and DOM Caching using $. 
    var body = $('body'); 
    console.log(body); 
})(jQuery); 
+0

यह बढ़िया है! क्या चाल है, धन्यवाद। – Andy

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