যেভাবে ড্রুপাল 7 জাভাস্ক্রিপ্ট এবং jQuery পরিচালনা করে Chan


14

আমি বর্তমানে একটি জাভাস্ক্রিপ্ট স্ক্রিপ্ট তৈরি করছি যা প্রশাসনের পৃষ্ঠায় চলে runs আমি ড্রুপাল in-এ করা পরিবর্তনগুলি পড়েছি, যাহা document.ready()এর নিজস্ব jQuery ফাংশনে স্থানান্তর । তবে নিম্নলিখিত স্ক্রিপ্টটি কাজ করে না।

(function ($) {
  console.log('hello');
  $('#edit-apiusername').append('test');
})(jQuery);

console.log()গুলি চালাচ্ছে এবং আমি আউটপুট দেখতে পাচ্ছি, তবে সরল সংযোজনটি কাজ করে না। ক্ষেত্রের আইডি সঠিক।
আমি এখানে কী অনুপস্থিত তা আমি নিশ্চিত নই, তবে আমি সন্দেহ করি যে বিষয়টি আমি কীভাবে উল্লেখ করছি তার সাথে এটি করার আছে। 3 টি জাভাস্ক্রিপ্ট কোড দেখে, আমি দেখতে পাচ্ছি এটি একইভাবে সম্পন্ন হয়েছে।


যদি আপনি কনসোল.লগ করেন ($ ('# edit-apiusername')); এটি কি আউটপুটটি আউটপুট দেয়, অর্থাত্ jQuery দ্বারা উপাদানটি পৃষ্ঠায় পাওয়া যাচ্ছে?
বুদ্দা

এমনকি ড্রুপাল 6 এর সাথে আপনার পরিবর্তে ড্রুপাল আচরণগুলি ব্যবহার করার কথা ছিল document.ready। আপনি যা প্রতিবেদন করছেন তা দ্রুপাল
to-এর সাথে

উত্তর:


28

আমি মনে করি আপনি পরিবর্তনগুলি ভুল বুঝেছেন।

শর্টকাট হিসাবে (function ($) { ... })(jQuery);ব্যবহারের অনুমতি দেওয়ার জন্য জাভাস্ক্রিপ্ট কোডটি মোড়ানো উচিত । এটি অন্যান্য লাইব্রেরির সাথে jQuery কে সুন্দরভাবে খেলতে দেয় । এই ফাংশনে, আপনি যদি ডেমটি পরিবর্তন করতে চান তবে লোড হওয়ার জন্য আপনাকে এখনও অপেক্ষা করতে হবে। আপনার কোডটি মোড়ানো এটাই ।$jQueryjQuery.ready(function(){ ... })

তবে ব্যবহারের পরিবর্তে jQuery.ready(function(){ ... }), আপনার আচরণগুলি ব্যবহার করা উচিত যাতে দ্রুপালের জাভাস্ক্রিপ্টটি জানতে পারে যে আপনার কোডটি ডিওএম থেকে যে কোনও কিছু যুক্ত ( বা সরানো ) প্রসেস করতে চায় ।

(function ($) {
  Drupal.behaviors.exampleModule = {
    attach: function(context, settings) {
      $(context).find('#edit-apiusername').append('test');
    }
  }
})(jQuery);

1

আপনি নিজের পছন্দমতো অন্য ভেরিয়েবলের সাথে পুরো jQuery অবজেক্টটি aliasing বিবেচনা করতে পারেন:

$j = jQuery.noConflict();

এটিকে এনক্যাপসুলেশনের বাইরে অ্যাক্সেসযোগ্য রাখার জন্য আপনি এটি প্রস্তুত স্টেটমেন্টের বাইরে রাখবেন।

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