jQuery - একাধিক document (নথি)। প্রস্তুত…?


358

প্রশ্ন:

যদি আমি দুটি জাভাস্ক্রিপ্ট ফাইলগুলিতে $(document).readyফাংশন দিয়ে লিঙ্ক করি তবে কী ঘটে? একজন কি অন্যটিকে ওভাররাইট করে? নাকি দুজনেই $(document).readyফোন হয়?

উদাহরণ স্বরূপ,

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>

<script type="text/javascript" src="http://.../jquery1.js"></script>

<script type="text/javascript" src="http://.../jquery2.js"></script>

jquery1.js:

$(document).ready(function(){
    $("#page-title").html("Document-ready was called!");
});

jquery2.js:

$(document).ready(function(){
    $("#page-subtitle").html("Document-ready was called!");
});


আমি নিশ্চিত যে কেবল উভয় কলকে এককভাবে একত্রিত করা ভাল অনুশীলন $(document).readyতবে আমার পরিস্থিতিতে এটি সম্ভব নয়।


উত্তর:


349

সমস্ত কার্যকর করা হবে এবং প্রথম প্রথম প্রথম ভিত্তিতে কল করা হবে !!

<div id="target"></div>

<script>
  $(document).ready(function(){
    jQuery('#target').append('target edit 1<br>');
  });
  $(document).ready(function(){
    jQuery('#target').append('target edit 2<br>');
  });
  $(document).ready(function(){
    jQuery('#target').append('target edit 3<br>');
  });
</script>

ডেমো যেমন আপনি দেখতে পাচ্ছেন তারা একে অপরকে প্রতিস্থাপন করে না

এছাড়াও একটি বিষয় উল্লেখ করতে চাই

এই জায়গায়

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

আপনি এই শর্টকাট ব্যবহার করতে পারেন

jQuery(function(){
   //dom ready codes
});

66
বা আরও ছোট $ (ফাংশন () {// ডোম প্রস্তুত কোডগুলি}); api.jquery.com/ تیار
davehale23

217
Seeing (ফাংশন () {// ডু স্টাফ}) দেখে মনে রাখবেন; প্রথমবারের জন্য, এবং গুগলের ব্যাখ্যাটি কতটা কঠিন ছিল? document (দস্তাবেজ)। প্রস্তুত এত অল্পের জন্য আরও অনেক বেশি যোগাযোগ করে ...
ম্যাট মন্টাগ

56
সংক্ষিপ্ত, কম পাঠযোগ্য কোডের পক্ষে একটি ভোট সন্ত্রাসবাদের পক্ষে ভোট।
ফ্রিএএসইনবিয়ার

10
শর্টকাটগুলি কোনও সুবিধা দেয় না, তবে এতে বাধা সৃষ্টি হয়। যদি আপনার লক্ষ্যটি যদি আপনার কোডটি পড়ার, বোঝার এবং বজায় রাখার জন্য সময় বিবেচনায় "সংক্ষিপ্ত" করা হয় তবে এই শর্টকাটগুলি আপনাকে আরও দীর্ঘ পথের দিকে নিয়ে যাবে।
জোনোনমো

3
যদি শর্টকাট ব্যবহার করা খারাপ, তবে একটি ব্যবহার করা উচিতjQuery(document).ready(function(){ });
মেমেট ওলসেন

76

এটি লক্ষ করা গুরুত্বপূর্ণ যে প্রতিটি jQuery()কলই আসলে ফিরে আসতে হবে। যদি একটি ব্যতিক্রম একটিতে ছুঁড়ে ফেলা হয় তবে পরবর্তী (সম্পর্কযুক্ত) কলগুলি কখনই কার্যকর করা হবে না।

সিনট্যাক্স নির্বিশেষে এটি প্রযোজ্য। আপনি ব্যবহার করতে পারেন jQuery(), jQuery(function() {}), $(document).ready()যাই হোক না কেন আপনি চান, আচরণ একই। যদি প্রথম দিকে কোনও ব্যর্থ হয় তবে পরবর্তী ব্লকগুলি কখনই চালানো হবে না।

তৃতীয় পক্ষের লাইব্রেরিগুলি ব্যবহার করার সময় এটি আমার জন্য সমস্যা ছিল। একটি লাইব্রেরি একটি ব্যতিক্রম ছুঁড়েছিল, এবং পরবর্তী গ্রন্থাগারগুলি কখনই কিছু শুরু করে না।


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

10
এই এখন আর তা নেই। JQuery 3.0 হিসাবে, jQuery নিশ্চিত করে যে কোনও হ্যান্ডলারের মধ্যে একটি ব্যতিক্রম ঘটে যা পরবর্তীকালে যুক্ত হ্যান্ডলারের মৃত্যুদন্ড কার্যকর করতে বাধা দেয় না। api.jquery.com/ تیار
রবি তেজা

31

$ (ডকুমেন্ট) .ready (); অন্যান্য ফাংশন হিসাবে একই। দস্তাবেজটি প্রস্তুত হওয়ার পরে এটি জ্বলে উঠবে - যেমন বোঝা। একাধিক document (নথি) .ডিআর () গুলি বহিস্কার করা হয় না যখন আপনি একাধিক within (দস্তাবেজ) এর মধ্যে একই ফাংশনটি ফায়ার করেন তখন প্রশ্নটি কী হয় তা সম্পর্কে প্রশ্ন ready

//this
<div id="target"></div>

$(document).ready(function(){
   jQuery('#target').append('target edit 1<br>');
});
$(document).ready(function(){
   jQuery('#target').append('target edit 2<br>');
});
$(document).ready(function(){
   jQuery('#target').append('target edit 3<br>');
});

//is the same as
<div id="target"></div>

$(document).ready(function(){

    jQuery('#target').append('target edit 1<br>');

    jQuery('#target').append('target edit 2<br>');

    jQuery('#target').append('target edit 3<br>');

});

উভয়ই ঠিক একই রকম আচরণ করবে। পার্থক্যটি হ'ল যদিও প্রাক্তন একই ফলাফল অর্জন করবে। দ্বিতীয়টি দ্রুত দ্বিতীয় সেকেন্ডের একটি ভগ্নাংশ চালাবে এবং টাইপিংয়ের কম প্রয়োজন। :)

উপসংহারে যেখানে কখনও সম্ভব কেবল 1 $ (নথি) ব্যবহার করুন। প্রস্তুত ();

// পুরাতন উত্তর

তারা উভয় ক্রম কল করা হবে। সেরা অনুশীলন হবে তাদের একত্রিত করা। তবে এটি সম্ভব না হলে চিন্তা করবেন না। পৃষ্ঠাটি বিস্ফোরিত হবে না।


mine সম্পাদিত খনি হিসাবে আমি ভেবেছিলাম লোকেরা একই ফাংশনটি একাধিক বার চালনা এবং একাধিক different (নথি)) রেডি'র ready আশাবাদী ^^ আশা করি এটির মধ্যে বিভ্রান্ত হতে পারে।
এড ফ্রয়েড


9

দুজনেই ফোন করা হবে, প্রথমে আগে পরিবেশন করা হবে। এখানে একবার দেখুন ।

$(document).ready(function(){
    $("#page-title").html("Document-ready was called!");
  });

$(document).ready(function(){
    $("#page-title").html("Document-ready 2 was called!");
  });

আউটপুট:

ডকুমেন্ট-রেডি 2 বলা হয়েছিল!


2

কোনও থ্রেডের জন্য নয়, তবে jQueryপ্রস্তাবিত বাক্য গঠনটির সর্বশেষতম সংস্করণটির মধ্যে রয়েছে:

$( handler )

একটি বেনামি ফাংশন ব্যবহার করে, দেখতে এটির মতো লাগবে

$(function() { ... insert code here ... });

এই লিঙ্কটি দেখুন:

https://api.jquery.com/ready/

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