document (ডকুমেন্ট)। প্রস্তুত শর্টহ্যান্ড


245

নিম্নলিখিত শর্টহ্যান্ড জন্য $(document).ready?

(function($){

//some code

})(jQuery);

আমি এই প্যাটার্নটি অনেক ব্যবহৃত হয়েছে দেখতে পাচ্ছি, তবে আমি এর কোনও রেফারেন্স খুঁজে পাই না। যদি এটি সংক্ষিপ্তভাবে হয় $(document).ready(), তবে এটি কার্যকর না হওয়ার কোনও বিশেষ কারণ আছে কি? আমার পরীক্ষাগুলিতে মনে হয় প্রস্তুত ইভেন্টের আগে সর্বদা আগুন জ্বলে।


উল্লিখিত প্যাটার্ন ফাংশনের অভ্যন্তরে নির্ধারিত কোনও ভেরিয়েবল (উদাহরণস্বরূপ var somevar;) ফাংশনের বাইরে একই নামের ভেরিয়েবলের সামগ্রী পরিবর্তন করবে না
টিমো হুভিনেন

3
কোডটি function ফাংশন ব্লকের মধ্যে jQuery উপস্থাপন করে তা নিশ্চিত করার প্রভাব রয়েছে তাই কোডটি এমন জায়গাগুলিতে পোর্টেবল যেখানে jQuery এর জন্য $ উপনাম অক্ষম করা হয়েছে বা অন্য কিছু হিসাবে সংজ্ঞায়িত হয়েছে।
জিজ্ঞাসা করুন যেভাবেই

উত্তর:


253

শর্টহ্যান্ড $(document).ready(handler)হ'ল $(handler)(যেখানে handlerএকটি ফাংশন)। এখানে দেখুন ।

আপনার প্রশ্নের কোডটির সাথে কোনও সম্পর্ক নেই .ready()। বরং এটি তাত্ক্ষণিকভাবে অনুরোধ করা ফাংশন এক্সপ্রেশন (আইআইএফই) এর সাথে যুক্তি হিসাবে jQuery অবজেক্ট। এর উদ্দেশ্য হ'ল কমপক্ষে $ভেরিয়েবলের সুযোগটিকে নিজের ব্লকে সীমাবদ্ধ করা যাতে এটি দ্বন্দ্ব সৃষ্টি না করে। এটি নিশ্চিত করতে আপনি সাধারণত jQuery প্লাগইনগুলি ব্যবহার করেছেন এমন প্যাটার্নটি দেখতে পান $ == jQuery


14
প্রযুক্তিগতভাবে এটি তাত্ক্ষণিকভাবে অনুরোধ করা ফাংশন এক্সপ্রেশন । যদি এটি স্ব-উদ্দীপক হয়, তবে এটি নিজের থেকেই নিজেকে ডেকে আনবে। ওয়েব অনুসন্ধান করুন iifeবা কাউবয় আলমানের বিখ্যাত ব্লগ পোস্টে এগিয়ে যান । বিস্তারিত ... sheesh।
2540625

546

শর্টহ্যান্ড হ'ল:

$(function() {
    // Code here
});

24
প্রথম যুক্তি হল $। এতে যুক্ত হতে পারে It's এটির জন্য দরকারীjQuery(function($, undefined) {});
রায়নস

5
@raynos এটি প্রয়োজন হয় না। উপরের কোডটি একটি উপন্যাস হিসাবে সূক্ষ্মভাবে কাজ করে$(document).ready(function(){ });
কাইল ট্রুবারম্যান

10
$প্রথম যুক্তি হিসাবে আপনি নিখরচায় পেয়েছেন তা জেনে রাখা কেবল দরকারী ।
রায়নস

3
আমি এখনও এই উত্তরটি মাসে একবার বা আরও একবার ভিজিট করি।
Nugsson

89

সঠিক শর্টহ্যান্ড হ'ল:

$(function() {
    // this behaves as if within document.ready
});

আপনার পোস্ট করা কোড…

(function($){

//some code

})(jQuery);

… একটি বেনামে ফাংশন তৈরি করে এবং তত্ক্ষণাত jQueryআরগ হিসাবে পাস করার সাথে সাথে এটি সম্পাদন করে $। এটি কার্যকরভাবে যা কিছু করে তা হ'ল কোডটি ফাংশনের অভ্যন্তরে নিয়ে যাওয়া এবং এটি স্বাভাবিকের মতো চালানো, যেহেতু $ইতিমধ্যে এর জন্য একটি উপনাম jQuery। : ডি


4
আপনি বলতে পারেন যে এটিও নিশ্চিত করে যে Qu jQuery এর জন্য এলিফ, যদি অন্য সরঞ্জামগুলিও ব্যবহার করে alias একটি উপাধি লোড হয়
জিম ওল্ফ

16

এটি কোনও সংক্ষিপ্ত বিবরণ নয় $(document).ready()

আপনি যে কোডটি পোস্ট করেছেন তা কোডটি অভ্যন্তরীণ $কোডগুলিকে জিকোয়ারি সরবরাহ করে যা বিশ্বব্যাপী নেমস্পেসকে দূষিত না করে available আপনি যখন কোনও পৃষ্ঠায় প্রোটোটাইপ এবং jQuery উভয়ই ব্যবহার করতে চান এটি ব্যবহার করা যেতে পারে।

এখানে নথিভুক্ত: http://learn.jquery.com/ using-jquery-core / avoid-conflicts-other-libraries /# use-an-imimarily-invoked-function-expression


প্রশ্নের
উত্তরের

12

এই নির্দিষ্ট লাইনগুলি jQuery প্লাগইনগুলির জন্য সাধারণ মোড়ক:

"... আপনার প্লাগইন ডলার চিহ্ন ব্যবহার করতে পারে এমন অন্যান্য লাইব্রেরিগুলির সাথে সংঘর্ষ না ঘটে তা নিশ্চিত করার জন্য, jQuery কে একটি স্ব সম্পাদনকারী ফাংশন (সমাপনীকরণ) এর নিকট উত্তীর্ণ করা একটি ভাল অনুশীলন যা এটি ডলারের চিহ্নে মানচিত্র করে যাতে এটি করতে পারে ' এটি কার্যকর করার সুযোগে অন্য লাইব্রেরি দ্বারা ওভাররাইট করা হবে না।

(function( $ ){
  $.fn.myPlugin = function() {
    // Do your awesome plugin stuff here
  };
})( jQuery );

Http://docs.jquery.com/ প্লাগইনস / অনুমোদন থেকে


11

প্রস্তুত করার জন্য বহু-কাঠামো নিরাপদ শর্টহ্যান্ড হ'ল:

jQuery(function($, undefined) {
    // $ is guaranteed to be short for jQuery in this scope
    // undefined is provided because it could have been overwritten elsewhere
});

এর কারণ jQuery এর শুধুমাত্র ফ্রেমওয়ার্ক নয় যে ব্যবহারসমূহ $এবং undefinedভেরিয়েবল


এছাড়াও লেখা যেতে পারে(function($){ ... })(jQuery);
মাইক কৌজার

2
@ মাইককৌসারও একটি ভাল পদ্ধতির, তবে এটির জন্য ডাকা হবে না ready, পরিবর্তে এটি তাত্ক্ষণিকভাবে ডাকা হবে
টিমো হুভিনেন

5

এমনকি সংক্ষিপ্ত রূপটি ব্যবহার করা হয়

$(()=>{

});

যেখানে $jQuery এর জন্য দাঁড়িয়েছে এবং ()=>{}এটি 'তীর ফাংশন' বলে thisযা বন্ধ হওয়ার পরে উত্তরাধিকার সূত্রে প্রাপ্ত । (যাতে thisআপনার সম্ভবত এর windowপরিবর্তে থাকতে পারে document))


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.