নিম্নলিখিত জেএস:
(function() {
"use strict";
$("#target").click(function(){
console.log("clicked");
});
}());
উৎপাদনের:
test.js: line 5, col 3, '$' is not defined.
JSHint 0.5.5 ব্যবহার করে আবদ্ধ যখন। কোন ধারনা?
$ হয় অনির্দিষ্ট।
নিম্নলিখিত জেএস:
(function() {
"use strict";
$("#target").click(function(){
console.log("clicked");
});
}());
উৎপাদনের:
test.js: line 5, col 3, '$' is not defined.
JSHint 0.5.5 ব্যবহার করে আবদ্ধ যখন। কোন ধারনা?
$ হয় অনির্দিষ্ট।
উত্তর:
আপনি যদি জেএসহিন্টের তুলনামূলকভাবে সাম্প্রতিক সংস্করণটি ব্যবহার করছেন তবে সাধারণত পছন্দসই পদ্ধতিটি হল আপনার প্রকল্পের মূলটিতে একটি .jshintrc ফাইল তৈরি করা এবং এতে এই কনফিগারেশনটি রাখা:
{
"globals": {
"$": false
}
}
এটি জেএসহিন্টকে ঘোষণা করে যে $ একটি বৈশ্বিক পরিবর্তনশীল, এবং মিথ্যা ইঙ্গিত দেয় যে এটি ওভাররাইড করা উচিত নয়।
.Jshintrc ফাইলটি জেএসহিন্টের সত্যিকারের পুরানো সংস্করণগুলিতে সমর্থিত ছিল না (যেমন ২০১২ সালের মূল প্রশ্নের মতো v0.5.5)। আপনি .jshintrc ফাইলটি ব্যবহার করতে বা না করতে চাইলে আপনি স্ক্রিপ্ট ফাইলটির শীর্ষে এটি যুক্ত করতে পারেন:
/*globals $:false */
শর্টহ্যান্ড "jquery" jshint বিকল্পটি JSHint বিকল্প পৃষ্ঠাতে যেমন দেখা যাচ্ছে ..
/*global $:false, jQuery:false */।
/* global ... */কি? আমি সাধারণত আমার সমস্ত ফাংশন সহ একটি স্ক্রিপ্ট আমদানি করি mainতাই এটি একে একে সংজ্ঞায়িত করা জটিল ...
আপনি আপনার .jshintrc এ দুটি লাইন যুক্ত করতে পারেন
"globals": {
"$": false,
"jQuery": false
}
এটি জিশিন্টকে বলে যে এখানে দুটি বৈশ্বিক চলক রয়েছে।
আপনাকে যা করতে হবে তা আপনার মধ্যে সেট করা "jquery": trueআছে .jshintrc।
প্রতি JSHint অপশন রেফারেন্স :
jQuery
এই বিকল্পটি jQuery জাভাস্ক্রিপ্ট লাইব্রেরি দ্বারা প্রকাশিত গ্লোবালগুলি সংজ্ঞায়িত করে।
আপনার .jshintrc এ রাখার জন্য এখানে একটি খুশির ছোট্ট তালিকা রয়েছে
আমি সময় বরাতে এই তালিকায় যুক্ত করব।
{
// other settings...
// ENVIRONMENTS
// "browser": true, // Is in most configs by default
"node": true,
// others (e.g. yui, mootools, rhino, worker, etc.)
"globals": {
"$":false,
"jquery":false,
"angular":false
// other explicit global names to exclude
},
}
যদি আপনি কোনও ইন্টেলিজ এডিটর যেমন ওয়েবস্টর্ম, পাইচার্ম, রুবিমাইন বা ইন্টেলিজ আইডিএ ব্যবহার করছেন:
ফাইল / সেটিংস / জাভাস্ক্রিপ্ট / কোড গুণমান সরঞ্জাম / জেএসহিন্টের এনভায়রনমেন্টস বিভাগে, jQuery চেকবক্সে ক্লিক করুন।
স্বাভাবিক "JSHint গ্লোবালগুলি বন্ধ করুন" সুপারিশ করার পরিবর্তে, আমি এই সমস্যাটি সমাধান করতে মডিউল প্যাটার্নটি ব্যবহার করার পরামর্শ দিচ্ছি recommend এটি আপনার কোডটিকে "অন্তর্নিহিত" রাখে এবং একটি পারফরম্যান্স উত্সাহ দেয় (পল আইরিশের "জেকারি সম্পর্কে আমি শিখেছি 10 টি জিনিস" এর উপর ভিত্তি করে )।
আমি এইভাবে আমার মডিউল নিদর্শন লিখতে ঝোঁক:
(function (window) {
// Handle dependencies
var angular = window.angular,
$ = window.$,
document = window.document;
// Your application's code
}(window))
আপনি এই অন্যান্য কর্মক্ষমতা সুবিধা পেতে পারেন ( এখানে আরও ব্যাখ্যা করা হয়েছে ):
windowঅবজেক্ট ডিক্লোরেশনে পাস করাটি পাশাপাশি ন্যূনতম হয় । যেমন window.alert()হয়ে m.alert()।windowঅবজেক্টের 1 টি উদাহরণ ব্যবহার করে ।windowসম্পত্তি বা পদ্ধতিতে কল করার সময় আপনি তাড়া করে ফেলেন , স্কোপ চেইনের ব্যয়বহুল ট্র্যাভারসাল প্রতিরোধ করে window.alert()(দ্রুত) বনামalert() (ধীর) পারফরম্যান্স।"}(window))"আপনার উদাহরণে - আমার কাছে jQuery এবং হাইচার্টস নিয়েও সমস্যা ছিল) I ফাইলটির জন্য গ্লোবাল সংজ্ঞায়িত করা ছাড়া আমি এটিকে বন্ধ করার উপায় খুঁজে পাইনি, যা তখন উদ্দেশ্যকে পরাস্ত করে
browser: trueবলেছে যে আপনি ব্রাউজার পরিবেশের প্রত্যাশা করছেন (যেখানে windowইতিমধ্যে সংজ্ঞায়িত রয়েছে)।
যদি আপনি কোনও ইন্টেলিজি সম্পাদক ব্যবহার করে থাকেন তবে
উদাহরণস্বরূপ console:false, আপনি যে কোনও কিছুতে টাইপ করতে পারেন এবং এটি তালিকায় (.jshintrc) পাশাপাশি যুক্ত হবে - একটি বিশ্বব্যাপী।
অনলাইন জেএসহিন্ট বাস্তবায়ন ব্যবহার করার সময় এই ত্রুটিটি ঠিক করতে :
আপনি সম্ভবত নিম্নলিখিতটি করতে চান,
const $ = window.$
এটি নিক্ষেপ করার ত্রুটি এড়াতে।
jquery.jsআপনার পৃষ্ঠায় যুক্ত করেছেন?