2014-04-09 8 views
9

तो मुझे पता है कि मैन्युअल रूप से इसे कैसे ठीक किया जाए लेकिन यह कष्टप्रद है!ब्राउज़र को jQuery परिभाषित नहीं किया गया है?

मैं बूटस्ट्रैप dropdown.js शामिल है और समारोह के अंत में

}(jQuery);

मेरी शिम अंदर मैं एक निर्भरता के रूप में jQuery सेट किया गया है

'bootstrap': { 
    "exports": 'bootstrap', 
    "depends": { 
     "jquery": '$' 
    } 
}, 

यह इस तरह लगता है केवल है $ का उपयोग करने का तरीका, लेकिन ड्रॉपडाउन के अंत में jQuery है क्योंकि कंसोल

ReferenceError: jQuery is not defined 

}(jQuery); 
012 दिखाता है

इसे }($); पर बदल रहा है।

तो मेरा सवाल यह है कि क्या किसी को मैन्युअल रूप से इसे किए बिना इसे बेहतर करने का कोई विचार है, या मैन्युअल रूप से स्क्रिप्ट को सर्वश्रेष्ठ रूप से संपादित कर रहा है?

+1

तो मुझे लगता है कि करने के लिए किया था, 'jQuery की बदलती के रूप में उपयोग को शामिल करना चाहिए:' jQuery ':' jQuery 'के लिए' $ ' मदद हो सकती है।हालांकि, मुझे कुछ के लिए जवाब जानना अच्छा लगेगा। – Lotus

+0

क्या आप यहां कुछ विवरण कोड जोड़ देंगे। ऐसा तब होता है जब हमारे पास jquery फ़ाइल शामिल है, उचित नहीं है। – Mahipat

+0

@ माहीपत यह वास्तव में दर्द हो सकता है, मुझे पता है कि आप कैसा महसूस करते हैं। मैंने जो किया वह वास्तविक प्लगइन स्क्रिप्ट संपादित किया गया था। मैं इस विधि को पसंद नहीं करता, लेकिन यह काम करता है। अधिकांश प्लगइन एक स्वयं invoking समारोह के साथ लिखा जाता है '(समारोह ($) { $ .fn.function_name = function (x) {}; }) (jQuery);' वह कोड jQuery कीवर्ड को ' $ ', लेकिन किसी कारण से मुझे मैन्युअल रूप से' (jQuery) '' ($) 'को बदलना होगा। मैंने काम करने के बाद इसे बहुत सोचा नहीं, लेकिन शायद मुझे यह सोचना चाहिए। –

उत्तर

0

मुझे नहीं लगता कि मेरा समाधान इष्टतम या आदर्श के करीब कहीं भी है और यह मेरे प्रश्न का उत्तर नहीं देता है, लेकिन अगर किसी को यह समस्या है तो बस इसे इस तरह से करें, आप इसे संभवतः काम करने के लिए एक अस्थायी समाधान के रूप में काम कर सकते हैं आपकी परियोजना पर ठहराए बिना जा रहा है।

अधिकांश यदि सभी jQuery प्लगइन्स इस तरह एक स्वयं invoking समारोह के साथ लिखे गए हैं।

(function($){ 
    $.fn.function_name = function(x){}; 

})(jQuery); 

मैं बस प्लगइन ही में चला गया और ($)

(function($){ 
    $.fn.function_name = function(x){}; 

})($); 

आप अभी भी समस्या हो रही है करने के लिए (jQuery) बदल गया है, सुनिश्चित करें कि आप एक परत अपने package.json फाइल में परिभाषित किया है और आप कर रहे हैं एक जरूरी कथन के साथ jQuery प्लगइन सहित।

}, 
"plugin": { 
    "exports": "plugin", 
    "depends": [ 
     "jquery: $", 
     "bootstrap: bootstrap" 
    ] 
} 

और plugin.js के अंदर:

var $ = require('jquery')(window); 
global.jQuery = require("jquery"); 
var bootstrap = require('bootstrap'); 
var plugin = require('plugin'); 

plugin(); 

यह मेरी समस्या का समाधान

10

तुम मेरे शिम global.jQuery = require("jquery")

यह वह जगह है उपयोग कर सकते हैं। आशा करता हूँ की ये काम करेगा। :)

+0

साझा करने के लिए धन्यवाद, मैंने पाया कि' $ 'का उपयोग करने से काम नहीं होता है तो शिम में' jQuery' का उपयोग करके आमतौर पर इसे ठीक करता है। निश्चित रूप से यह संदर्भित करने जा रहा है अगर वह कभी विफल रहता है। –

1

शिम
"./node_modules/jquery/dist/jquery.js": { "निर्यात": "$" }

की आवश्यकता होती है
वर jQuery = $ = की आवश्यकता होती है ('$');

यह दोनों वाले प्लग इन

(function($){ 
$.fn.function_name = function(x){}; 
})($); 

रूप में अच्छी तरह

(function($){ 
    $.fn.function_name = function(x){}; 
})(jQuery); 
संबंधित मुद्दे