WordPress ওয়ার্ডপ্রেসে jQuery ব্যবহার করে সংজ্ঞায়িত হয়নি


32

আমি জানি যে jQuery লোড হয়েছে, কারণ আমি $'jQuery' এর জন্য স্যুইচ আউট করতে পারি এবং প্রত্যাশা অনুযায়ী সবকিছু আচরণ করে, তবে আমি যদি এটি ঠিক করতে না পারি তবে এটি একটি অগোছালো স্ক্রিপ্ট হবে if

এই লিপি:

jQuery(document).ready(function(){
    $("ul.vimeo_desc_feed li a").click(function(){
        alert($(this).attr('href'));
        return false;
    })
});

ত্রুটি উত্পাদন করে $ is not a function

এই লিপি:

jQuery(document).ready(function(){
    jQuery("ul.vimeo_desc_feed li a").click(function(){
        alert(jQuery(this).attr('href'));
        return false;
    })
});

ঠিকভাবে কাজ করে.

উত্তর:


42

আপনি নিজের জাভাস্ক্রিপ্টটিকে একটি স্ব- jQueryআমন্ত্রণমূলক ক্রিয়াকলাপের মধ্যে মোড়াতে পারেন, তারপরে $স্থানীয় ভেরিয়েবল নাম হিসাবে এটির পক্ষে যুক্তি হিসাবে পাস করুন । উদাহরণ স্বরূপ:

(function($) {
  $(document).ready(function(){
    $("ul.vimeo_desc_feed li a").click(function(){
      alert($(this).attr('href'));
      return false;
    })
 });
}(jQuery));

উদ্দেশ্য হিসাবে কাজ করা উচিত।

আমি যদি সঠিকভাবে মনে রাখি ডাব্লুপি-সরবরাহিত সংস্করণ জিকুয়েরির (আপনি যদি পান তবে একটি wp_enqueue_script('jquery')) তত্ক্ষণাত জিকুয়েরিকে কোনও দ্বন্দ্বের মধ্যে ফেলে দেয়, যার ফলে $অপরিজ্ঞাপিত হয়।


আঃ, দেখছি। আমি এটি হাতে হাতে যুক্ত করতাম, যা ব্যাখ্যা করে যে আমি কেন এই সমস্যাটি জুড়ে আসছি না।
হালকা ফাজ

আপনাকে ধন্যবাদ, আমি শেষের পরিবর্তে শুরুতে jQuery এর সাথে বিকল্প ফর্ম্যাটটি ব্যবহার করছিলাম .. তবে কীভাবে কোনও মান ফিরিয়ে আনতে পারি তা বুঝতে পারি না, এই ফর্ম্যাটটি দিয়ে আমি স্ব-আমন্ত্রণমূলক ফাংশনের আগে কেবল ফিরে যোগ করেছি, এবং এটি কাজ করে।
eselk

খুব দরকারী উত্তর।
মার্কস্কেফ

32

আপনি বেশিরভাগ ওখানেই থাকেন!

jQuery(document).ready(function($){
    $("ul.vimeo_desc_feed li a").click(function(){
        alert($(this).attr('href'));
        return false;
    })

});

$আপনার পদ্ধতিতে ফাংশন হিসাবে আপনাকে jQuery এর একটি রেফারেন্স দিতে হবে বা এটি কাজ করবে না। function()আমি উপরে যেমনটি করেছি ঠিক তেমন কোনও কলটি যদি প্রথম কলের ভিতরে রাখে তবে জিনিসগুলি ঠিকঠাকভাবে কাজ করবে।


4
+1: jQueryএটি শেষে রাখার চেয়ে বেশি পঠনযোগ্য ।
ফুসিয়া

1
... তবে এটি কোনও বেনামি কাজ করার মানক উপায় নয়। ফোরাম.জকোয়ারি
জাকোয়ারি-

5
হ্যা এবং না. তারা উভয়েই এটি করার "স্ট্যান্ডার্ড" উপায় হিসাবে বিবেচনা করা হয়। এক একটি সিঙ্গলটন ক্লাস তৈরি করে যা $স্থানীয়ভাবে সংজ্ঞায়িত করে। অন্যটি নথির readyইভেন্টের জন্য একটি হ্যান্ডলার সংজ্ঞায়িত করে এবং jQuery অবজেক্টটিকে হ্যান্ডলারের মধ্যে পাস করে $। আপনি যদি readyইভেন্টটিতে নজর দেওয়ার চেষ্টা করছেন তবে দ্বিতীয় পদ্ধতিটি বেশি ব্যবহৃত হয়। আপনার যদি অন্য কোনও উদ্দেশ্যে jQuery প্রয়োজন হয় ( $.browserউদাহরণস্বরূপ হুক করতে ), আপনি একটি সিঙ্গলটন ক্লাস ব্যবহার করবেন।
EAMAN

JQuery (ডকুমেন্ট) এর জন্য +1। Jdry (ফাংশন ($) {... jquery এবং ওয়ার্ডপ্রেস সম্পর্কে মুর ইনফসগুলি আপনি আমার পোস্টেও পড়তে পারেন: wpengineer.com/2028/small-tips- using-wordpress-and-jquery
বুলেটজ

6

আপনার কলব্যাকের প্রথম প্যারামিটার হিসাবে $(document).ready(...)রেখে jQuery এ একটি ফাংশন পাস করার জন্য সংক্ষিপ্তকরণ হয় $, আপনি সেই কলব্যাকের মধ্যে jQuery এর জন্য একটি এলিফ তৈরি করেন:

jQuery(function($) {
    $("ul.vimeo_desc_feed li a").click(function(){
        alert($(this).attr('href'));
        return false;
    });
});

আপনি এখানে এর জন্য ডকুমেন্টেশন দেখতে পারেন ।

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