Does (ফাংশন () {}) কী করে; না?


207

কখনও কখনও আমি একটি ফাংশন করি এবং পরে ফাংশন কল করি।

উদাহরণ:

function example { alert('example'); }
example(); // <-- Then call it later

একরকম, কিছু ফাংশন কল করা যায় না। আমাকে সেই ফাংশনগুলিকে ভিতরে কল করতে হবে:

$(function() { });

কী $(function() {});এবং (function() { });অর্থ এবং এর পার্থক্য / উদ্দেশ্য কী?

উত্তর:


306
$(function() { ... });

শুধুমাত্র jQuery সংক্ষিপ্ত হাত

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

এটি করার জন্য কীভাবে নকশা করা হয়েছে (অন্যান্য জিনিসগুলির মধ্যে রয়েছে) তা নিশ্চিত করা হয় যে একবার পৃষ্ঠার সমস্ত ডোম উপাদান ব্যবহার করার জন্য প্রস্তুত হয়ে গেলে আপনার ফাংশনটি ডাকা হয়।

যাইহোক, আমি মনে করি না যে আপনার যে সমস্যাটি হচ্ছে - আপনি কি বলতে চাইছেন তা পরিষ্কার করে বলতে পারেন 'একরকম, কিছু ফাংশন বলা যায় না এবং আমাকে সেই ফাংশনটি ভিতরে কল করতে হবে'? প্রত্যাশার মতো কাজ করছে না তা দেখাতে কিছু কোড পোস্ট করুন?

সম্পাদনা করুন: আপনার প্রশ্নটি পুনরায় পড়া, এমন হতে পারে যে পৃষ্ঠাটি লোড শেষ হওয়ার আগে আপনার ফাংশনটি চলমান রয়েছে, এবং তাই সঠিকভাবে কার্যকর হবে না; এটিকে $ (ফাংশন) এ রাখলে তা ঠিক হয়ে যায়!


2
কি যদি $ (ফাংশন () {}); ইতিমধ্যে $ (দস্তাবেজ) এ রয়েছে। প্রস্তুত ()?
jwchang

ফাংশনটি $ (ফাংশন () ছাড়া কাজ করে না যদিও এটি ইতিমধ্যে $ (নথি) প্রস্তুত () এ রয়েছে
jwchang

ভাল প্রশ্ন! আমি বিশ্বাস করি এটি ঠিক কাজ করা উচিত, কারণ jQuery জানেন যে আপনি সঠিক জায়গায় আছেন তবে এটি অবশ্যই বহিরাগত; যদি আপনি ভিতরে থাকেন। প্রস্তুত () আপনি কেবল আপনার ফাংশনটিকে স্বাভাবিক হিসাবে কল করতে পারেন। যদি এটি কাজ না করে থাকে, তবে একটি নমুনা পোস্ট করুন বা আরও ভাল - চেষ্টা করুন এবং jsfiddle.net হিসাবে একটি ফ্রেড তৈরি করুন।
রাশ ক্লার্ক

4
@JeongWooChang কি এটা এত পছন্দ (function () { ... })();()আপনার ফাংশনটি শুরু করতে আপনাকে যুক্ত করতে হবে।
Vidime Vidas

3
"অভিজ্ঞ ডেভেলপার কখনও কখনও সংক্ষেপে ব্যবহার $()জন্য $( document ).ready()। আপনি কোড যে যারা jQuery সঙ্গে অভিজ্ঞতা নেই দেখতে পারেন লেখার হয়, এটা দীর্ঘ ফর্ম ব্যবহার সেরা।" - learn.jquery.com
থোডান

15

নীচে একটি jQuery ফাংশন কল:

$(...);

যা "jQuery ফাংশন"। $এটি একটি ফাংশন, এবং $(...)আপনি সেই ফাংশনটি কল করছেন।

আপনার সরবরাহ করা প্রথম প্যারামিটারটি হ'ল:

function() {}

প্যারামিটারটি এমন একটি ফাংশন যা আপনি নির্দিষ্ট করেছেন এবং $ফর্মটি সরবরাহের পদ্ধতিটি কল করবে যখন ডম লোডিং শেষ করে।


8

এটি কেবল শর্টহ্যান্ড $(document).ready()হিসাবে, যেমন:$(document).ready(function() { YOUR_CODE_HERE });। কখনও কখনও আপনাকে এটি ব্যবহার করতে হয় কারণ DOM লোডিং শেষ হওয়ার আগে আপনার ফাংশনটি চলমান।

এখানে সমস্ত কিছু ব্যাখ্যা করা হয়েছে: http://docs.jquery.com/ টিউটোরিয়ালস : পরিচিতি_$ (নথি)। প্রস্তুত ()


5

আমি মনে করি আপনি জাভাস্ক্রিপ্টকে jQuery পদ্ধতিগুলির সাথে বিভ্রান্ত করছেন। ভ্যানিলা বা সরল জাভাস্ক্রিপ্ট এরকম কিছু:

function example() {
}

এই প্রকৃতির একটি ফাংশন যে কোনও সময়, যে কোনও জায়গায় ডাকা যেতে পারে।

jQuery (জাভাস্ক্রিপ্টে নির্মিত একটি লাইব্রেরি) এমন ফাংশন তৈরি করেছে যা সাধারণত ডুমকে ডাকা হওয়ার আগে পুরোপুরি রেন্ডার করা প্রয়োজন। এটি সম্পন্ন হওয়ার জন্য সিনট্যাক্সটি হ'ল:

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

সুতরাং একটি jQuery ফাংশন, যা সাধারণত $বা শব্দের সাথে উপসর্গযুক্ত হয় jQueryসেই পদ্ধতির মধ্যে থেকেই ডাকা হয়।

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

এই ব্লকের সিউডো কোডটি হ'ল:

ডকুমেন্ট অবজেক্ট মডেল $(document)প্রস্তুত হয়ে .ready()গেলে, নিম্নলিখিত ফাংশনটিতে কল করুন function() { }। সেই ফাংশনে, <li>পৃষ্ঠাটিতে $('li')এবং jQuery পদ্ধতি ব্যবহার করে সিএসএস () ব্যবহার করে সিএসএস বৈশিষ্ট্য "রঙ" মান "লাল" করতে সেট করুন.css('color', 'red');


2

এটি এর জন্য একটি শর্টকাট $(document).ready(), যা ব্রাউজার পৃষ্ঠাটি লোড করা শেষ করার পরে কার্যকর করা হয় (যার অর্থ এখানে "যখন ডিওএম উপলব্ধ থাকে")। Http://www.fireningjquery.com/2006/09/introducing-docament- چمتو দেখুন । example()ব্রাউজারটি পৃষ্ঠাটি লোড করা শেষ করার আগে যদি আপনি কল করার চেষ্টা করছেন তবে এটি কাজ করবে না।


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