jQuery के अनलोड किए गए टाइपऑयर: प्रॉपर्टी [ऑब्जेक्ट विंडो] का '$' कोई फंक्शन नहीं है


92

सभी, मैंने एक पूर्वनिर्धारित जेएस / सीएसएस फॉर्म एप्लीकेशन डाउनलोड किया और मैं इसे वर्डप्रेस में उपयोग करने का प्रयास कर रहा हूं। मुझे निम्नलिखित कोड मिला है:

$(document).ready(function () {


/*----------------------------------------------------------------------*/
/* Parse the data from an data-attribute of DOM Elements
/*----------------------------------------------------------------------*/


$.parseData = function (data, returnArray) {
    if (/^\[(.*)\]$/.test(data)) { //array
        data = data.substr(1, data.length - 2).split(',');
    }
    if (returnArray && !$.isArray(data) && data != null) {
        data = Array(data);
    }
    return data;
};

/*----------------------------------------------------------------------*/
/* Image Preloader
/* http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
/*----------------------------------------------------------------------*/



// Arguments are image paths relative to the current page.
$.preload = function() {
    var cache = [],
        args_len = arguments.length;
    for (var i = args_len; i--;) {
        var cacheImage = document.createElement('img');
        cacheImage.src = arguments[i];
        cache.push(cacheImage);
    }
};


/*----------------------------------------------------------------------*/
/* fadeInSlide by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/


$.fn.fadeInSlide = function (speed, callback) {
    if ($.isFunction(speed)) callback = speed;
    if (!speed) speed = 200;
    if (!callback) callback = function () {};
    this.each(function () {

        var $this = $(this);
        $this.fadeTo(speed / 2, 1).slideDown(speed / 2, function () {
            callback();
        });
    });
    return this;
};


/*----------------------------------------------------------------------*/
/* fadeOutSlide by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/


$.fn.fadeOutSlide = function (speed, callback) {
    if ($.isFunction(speed)) callback = speed;
    if (!speed) speed = 200;
    if (!callback) callback = function () {};
    this.each(function () {

        var $this = $(this);
        $this.fadeTo(speed / 2, 0).slideUp(speed / 2, function () {
            $this.remove();
            callback();
        });
    });
    return this;
};

/*----------------------------------------------------------------------*/
/* textFadeOut by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/


$.fn.textFadeOut = function (text, delay, callback) {
    if (!text) return false;
    if ($.isFunction(delay)) callback = delay;
    if (!delay) delay = 2000;
    if (!callback) callback = function () {};
    this.each(function () {

        var $this = $(this);
        $this.stop().text(text).show().delay(delay).fadeOut(1000,function(){
            $this.text('').show();
            callback();
        })
    });
    return this;
};

/*----------------------------------------------------------------------*/
/* leadingZero by revaxarts.com
/* adds a leding zero if necessary
/*----------------------------------------------------------------------*/


$.leadingZero = function (value) {
    value = parseInt(value, 10);
    if(!isNaN(value)) {
        (value < 10) ? value = '0' + value : value;
    }
    return value;
};


});

मैं मान रहा था कि Wordpress कोई संघर्ष एक समस्या पैदा कर रहा था इसलिए मैंने निम्न की तरह दिखने के लिए बहुत अंतिम ब्रैकेट को अपडेट किया:

}, "jQuery");

हालाँकि, मुझे अभी भी वही त्रुटि मिल रही है। क्या किसी को पता है कि इस मुद्दे पर क्या होगा और इसे कैसे हल किया जाए?

अग्रिम में धन्यवाद!

जवाबों:


260

यह एक वाक्यविन्यास मुद्दा है, वर्डप्रेस लोड के साथ शामिल jQuery पुस्तकालय "कोई संघर्ष" मोड में नहीं है। यह अन्य जावास्क्रिप्ट पुस्तकालयों के साथ संगतता समस्याओं को रोकने के लिए है जिसे वर्डप्रेस लोड कर सकता है। "नो-कंफर्ट" मोड में, $ शॉर्टकट उपलब्ध नहीं है और लंबे समय तक jQuery का उपयोग किया जाता है, अर्थात

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

फ़ंक्शन कॉल के बाद कोष्ठक में $ शामिल करके आप फिर कोड ब्लॉक के भीतर इस शॉर्टकट का उपयोग कर सकते हैं।

पूर्ण विवरण के लिए वर्डप्रेस कोडेक्स देखें


मुझे आपको अंत में "jQuery" को जोड़ने की आवश्यकता है
RedEyedMonster

3
आप एक ऐसे जीवन रक्षक हैं !!! डिबगिंग के 3 दिनों के बाद, मैंने पाया कि यह मेरे मुद्दे का सटीक समाधान था। यद्यपि वर्डप्रेस jQuery फ़ाइल लोड कर रहा था, मैं तैयार दस्तावेज़ में उल्लिखित fucntions का उपयोग नहीं कर सका। तो इस कोड की सटीक लाइन ने jQuery(document).ready(function ($) {इसे अच्छे के लिए तय किया। साझा करने के लिए एक टन धन्यवाद।
डेविनर

2
Drupal में भी यही मुद्दा है। समाधान वहां भी काम करता है। धन्यवाद
योगेश गुप्ता

35

मेरा पसंदीदा नो-संघर्ष-अनुकूल निर्माण:

jQuery(function($) {
  // ...
});

एक फ़ंक्शन पॉइंटर के साथ jQuery को कॉल करना $ (दस्तावेज़) के लिए एक शॉर्टकट है। पहले से ही (...)

या जैसा कि हम कॉफ़ीस्क्रिप्ट में कहते हैं:

jQuery ($) ->
  # code here

यदि $पहले से ही एक jquery उदाहरण है - किसी भी कारण से jQueryइसे पारित करने और $एक बार फिर नाम देने के लिए ?
झटके

2
$ एक jQuery उदाहरण नहीं हो सकता है अगर यह किसी अन्य पुस्तकालय के साथ विरोध कर रहा है - नो-संघर्ष मोड।
जूलियन

4
यह एक शॉर्टकट है $(document).ready(), न कि$(document).on('load')
केविन बी

यह मेरे लिए काम किया! मेरे विषय के सभी रिवाज। के कार्यों को बेवजह तोड़ दिया। मैंने $ (दस्तावेज़) को बदल दिया है। पहले से ही (फ़ंक्शन () {इसके साथ और इसने जादू की तरह काम किया :)
इरा हर्मन


1

आप निम्न में से कुछ को Google लाइब्रेरी के साथ डिफ़ॉल्ट वर्डप्रेस jQuery स्क्रिप्ट में बदलने के लिए विचार कर सकते हैं।

function modify_jquery() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, '1.10.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'modify_jquery');

यहाँ से लिया गया कोड: http://www.wpbeginner.com/wp-themes/replace-default-wordpress-jquery-script-with-google-library/


सबसे अच्छा समाधान अगर आप WP डाउनसाइड के बाहर "बाहरी" JQuery प्लगइन्स का उपयोग कर रहे हैं: - कुछ Wordpress प्लगइन्स के साथ संघर्ष - मेरी तरफ कुछ भी नहीं देखा
RunsnbunsN

-1

हो सकता है कि आपके पास इस तरह का कोड हो जो जक्वरी से पहले हो:

var $jq=jQuery.noConflict();
$jq('ul.menu').lavaLamp({
    fx: "backout", 
    speed: 700
});

और वे संघर्ष थे

आप $ को बदल सकते हैं (jQuery)


1
मैंने इसका इस्तेमाल किया जैसे var $=jQuery.noConflict();मेरा एक जावा-वेबप सेटअप था, लेकिन मुझे वही त्रुटि मिली!
कोडिंग_डॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.