jQuery UI "$ (" # ডেটপিকার ")। ডেটপিকারটি কোনও ফাংশন নয়"


125

আমি যখন ডেটপিকার ব্যবহার করি, jQuery এর ইউআই প্লাগইন, বিদ্যমান। এসপিএক্স পৃষ্ঠায় আমি ত্রুটি পাই যা:

$("#datepicker").datepicker is not a function

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

যে কেউ আমার বিশ্বাসকে নিশ্চিত করতে বা jQuery এর ইউআই প্লাগইনগুলিতে হস্তক্ষেপকারী অপরাধীকে সন্ধানের জন্য কোনও টিপস সরবরাহ করতে পারে?


আপনি কি প্রাসঙ্গিক jQuery কোড পোস্ট করতে পারেন দয়া করে
রাশ ক্যাম

আপনি কীভাবে পৃষ্ঠায় ডেটপিকার প্লাগইনটি অন্তর্ভুক্ত করছেন - এটি কোনও স্ক্রিপ্টম্যানেজারপ্রক্সিতে রয়েছে বা আপনি এটি সরাসরি পৃষ্ঠায় লিখছেন? আপনি কি নিশ্চিত যে এটি লোড হচ্ছে? যদি তা হয় তবে আপনি অন্য কোন প্লাগইন অন্তর্ভুক্ত করছেন? আপনি কি নিশ্চিত যে আপনি ui.core.js অন্তর্ভুক্ত করেছেন?
জেমস কলপ্যাক 14

12
আমি সমস্যাটি খুঁজে পেয়েছি। আমি আশা করি গতকাল এই প্রশ্নটি পোস্ট করার পরে 1 ঘন্টার বিরোধিতা হিসাবে আমি এই সমাধানটি খুঁজে পেয়েছি। আমি যে জেএস কোডটি jQuery এবং jQuery UI জাভাস্ক্রিপ্ট ফাইল রেফারেন্স লিখেছি তা মডিউল হিসাবে অভিনয় করেছে। এর পিতামাতারা বডি ট্যাগের নীচে jQuery উল্লেখ করে (তাই jQuery এর জন্য 2 টি উল্লেখ)। যেহেতু jQuery ইউকিউআইআই এর পরে পুনরায় পুনঃনির্মাণ করা হয়েছে, তাই jQuery UI প্লাগইন হিসাবে মুছে ফেলা হয়েছে, সুতরাং আমার কোডটি ডেটপিকার প্লাগইনটি কেন খুঁজে পেল না।
পোড়া 1ce

যেহেতু আমি ওয়েবপ্যাক ব্যবহার করছি, তার পরিবর্তে আমার jquery-ui-bundle ব্যবহার করা দরকার। stackoverflow.com/a/39230057/470749
রায়ান

উত্তর:


210

আমি ঘন্টা কয়েক একই সমস্যা সঙ্গে সংগ্রাম। এরপরে দেখা গেল যে jQuery দু'বার অন্তর্ভুক্ত ছিল, একবার প্রোগ্রামের মাধ্যমে আমি jQuery ফাংশন যুক্ত করেছিলাম এবং একবার আমাদের ঘরে বসে ডিবাগার।


4
এটি আমার সমস্যাও ছিল। আমার নিজের jQuery লাইব্রেরির সাথে jQuery সরঞ্জাম সিডিএন সহ একটি রেফারেন্স ছিল যা অজান্তে jQuery অন্তর্ভুক্ত করেছিল।
ডেভগার্সিয়া

এটিও আমার ইস্যু ছিল। আমি সুপারফিশ ব্যবহার করছি এবং এটি jquery লোড করা হয়। আমি এখন অবধি লক্ষ্য করিনি।
rrtx2000

45
তাহলে সমাধান কী?
হেনরিক অর্ডাইন

8
@ হেনরিকঅর্ডাইন ডাবল পরীক্ষা করে দেখুন যে jQuery পৃষ্ঠাটিতে দু'বার অন্তর্ভুক্ত নেই।
ইউজিন ভ্যান ডের মেরভে

এটিও আমার সমস্যা ছিল। আমি রেলের সম্পদ পাইপলাইনের মধ্যে সাধারণ সম্পদ ব্যবহার করছিলাম এবং উভয়ই আমার শীর্ষ-স্তরের মেটা ফাইল (অ্যাপ্লিকেশন.জেএস)-তে জেকারি ঘোষনা করছিলাম এবং আমার জেএস ফোল্ডারে একটি জেকারি মিনি ফাইল ছিল। ডাবল ঘোষণা। আমি সবেমাত্র jquery ঘোষণা সরিয়েছি।
মারিও

38

যদি another ভেরিয়েবল ব্যবহার করে এমন অন্য লাইব্রেরি থাকে তবে আপনি এটি করতে পারেন:

var $j = jQuery.noConflict();
$j("#datepicker").datepicker();

এছাড়াও নিশ্চিত করুন যে আপনার জাভাস্ক্রিপ্ট অন্তর্ভুক্ত সঠিক ক্রমে রয়েছে যাতে jquery. কোর লাইব্রেরি jquery.ui এর আগে সংজ্ঞায়িত করা হয়। আমি কারণ কারণ ছিল।


এছাড়াও নিশ্চিত করুন যে আপনার জাভাস্ক্রিপ্ট অন্তর্ভুক্ত সঠিক ক্রমে রয়েছে যাতে jquery. কোর লাইব্রেরি jquery.ui এর আগে সংজ্ঞায়িত করা হয়। আমার সেই কারণগুলির সমস্যাগুলি ছিল << এটি আমার পক্ষে সঠিক উত্তর।
ma maesesar

22

আপনি যখন jQuery UI সেট থেকে কোনও ফাইল মিস করছেন তখন এই ত্রুটিটি সাধারণত উপস্থিত হয়।

আপনার সমস্ত ফাইল, jQuery UI ফাইল পাশাপাশি সিএসএস এবং চিত্রগুলি ডাবল-পরীক্ষা করে দেখুন এবং সেগুলি আপনার সার্ভারে সঠিকভাবে সংযুক্ত ফাইল / ডিরেক্টরিতে রয়েছে।


এই উত্তরটি আমি পোস্ট করা সমাধানের নিকটতম।
পোড়া 1ce

নিজের কাছে নোট: নিশ্চিত করুন যে স্থানীয় ফাইল থেকে গুগলের সিডিএন ফাইলগুলিতে স্যুইচ করার সময় আপনার কাছে সঠিক ইউআরএল রয়েছে। এটি ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js, ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery-ui.min.js, ধূর.
নিমিনেম

17

jQuery "$ (" # ডেটপিকার ") date ডেটপিকার একটি ফাংশন নয়"

আমি নীচে ফর্মের বডি বিভাগে তিনটি ফাইল রেখে সমস্যাটি স্থির করেছি।

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />

1
আপনি একটি জীবন রক্ষাকারী, সমস্ত উত্তরগুলির কোনও না কোনওভাবে, এই তিনিই আমাকে 2 দিনের অবিরাম লড়াইয়ের পরে বাঁচিয়েছিলেন।
তেজাস জাগি

8

আপনি যদি মনে করেন যে কোনও বিরোধ আছে তবে jQuery.noConflict()আপনি নিজের কোডটি ব্যবহার করতে পারেন । বিস্তারিত রয়েছে ডক্স

রেফারেন্সিং ম্যাজিক - জ্যাকুয়েরির জন্য শর্টকাটস

আপনি যদি পুরো সময় "jQuery" টাইপ করতে পছন্দ না করেন তবে কিছু বিকল্প শর্টকাট রয়েছে:

অন্য শর্টকাটে jQuery পুনরায় নিয়োগ করুন var $j = jQuery;(আপনি বিভিন্ন লাইব্রেরি ব্যবহার করতে চাইলে এটি সর্বোত্তম পন্থা হতে পারে) নিম্নলিখিত কৌশলটি ব্যবহার করুন, যা আপনাকে স্থায়ীভাবে ওভাররাইট না করে without কোডের একটি ব্লকের ভিতরে use ব্যবহার করতে দেয়:

(function($) { /* some code that uses $ */ })(jQuery)

দ্রষ্টব্য: আপনি যদি এই কৌশলটি ব্যবহার করেন তবে আপনি এই ক্যাপসুলড ফাংশনের অভ্যন্তরে প্রোটোটাইপ পদ্ধতি ব্যবহার করতে পারবেন না যা প্রত্যাশিত Prot প্রোটোটাইপের's, সুতরাং আপনি block ব্লকটিতে কেবল jQuery ব্যবহার করার পছন্দ করছেন। DOM প্রস্তুত ইভেন্টে যুক্তিটি ব্যবহার করুন:

jQuery(function($) { /*some code that uses $ */ });

দ্রষ্টব্য: আবারও সেই ব্লকের ভিতরে আপনি প্রোটোটাইপ পদ্ধতি ব্যবহার করতে পারবেন না

দস্তাবেজগুলির শেষে থেকে এটি আপনার পক্ষে কার্যকর হতে পারে


7

স্পষ্টতই প্রথমে যান: আপনি কি jquery-ui.js ফাইলটি ভালভাবে উল্লেখ করছেন?

এটি লোড হয়েছে কিনা তা অনুসন্ধান করার জন্য ফায়ারব্যাগের নেটওয়ার্ক ট্যাব ব্যবহার করার চেষ্টা করুন বা ওয়েব ডেভেলপার সরঞ্জামদণ্ডের তথ্য \ জাভাস্ক্রিপ্ট কোড দেখুন।


3

আপনি কি ফায়ারব্যাগ 1 ব্যবহার করে চেষ্টা করেছেন) জাভাস্ক্রিপ্টের ত্রুটিগুলি নেই এবং 2) # ডেটাপিকার উপাদানটি পৃষ্ঠায় বিদ্যমান রয়েছে তা নির্ধারণ করে?

ডেটপিকার কলটির আগে সম্ভবত একটি ত্রুটি রয়েছে যা ডেটপিকারকে কল কার্যকর করতে বাধা দিচ্ছে।


2

আমি জানি যে এই পোস্টটি বেশ পুরানো, তবে রেফারেন্সের জন্য আমি ডেটপিকারের সংস্করণ আপডেট করে এই সমস্যাটি সমাধান করেছি

ডিবাগিংয়ের কয়েক ঘন্টা এড়াতে এটি চেষ্টা করার মতো।

https://cdnjs.com/libraries/bootstrap-datepicker


2
এটি জ্যাকুরি ইউআই ডেটপিকারের ক্ষেত্রে প্রযোজ্য নয়। বুটস্ট্র্যাপ ডেটপিকার একটি সম্পূর্ণ ভিন্ন প্রাণী different
রেডস্যান্ডস

1

আমার কেবল এই সমস্যাটি ছিল, এবং </body>ট্যাগটি আমার জন্য এটি ঠিক করার আগে জেএসের রেফারেন্স এবং কোডটিকে পৃষ্ঠার নীচে নিয়ে যাচ্ছে ।


1

আপনি যে ডিরেক্টরিতে ফাইলগুলি ডাউনলোড করেন তার অনুমতিও পরীক্ষা করে দেখুন। কোনও কারণে যখন আমি এটি ডাউনলোড করি তখন ডিফল্টরূপে এটি কোনও অ্যাক্সেস ছাড়াই একটি ফোল্ডারে সংরক্ষণ করা হয়েছিল! সমস্যাটি নির্ধারণ করতে এটি চিরতরে লেগেছিল, তবে আমাকে কেবল ডিরেক্টরিটির অনুমতি এবং এটির বিষয়বস্তুগুলি পরিবর্তন করতে হয়েছিল - এটিকে সব সেট করে = কেবলমাত্র পড়ুন। এখন দুর্দান্ত কাজ করে।


1

আমি সম্প্রতি এই সমস্যায় পড়েছি - সমস্যাটি হ'ল আমি জিকুয়ারি ইউআই ফাইলগুলি হেড ট্যাগে অন্তর্ভুক্ত করেছি, তবে আমি যে টেলিগ্রন্থাগুলি ব্যবহার করেছি তার দ্বারা বডি ট্যাগের নীচে অন্তর্ভুক্ত jQuery ব্যবহার করা হয়েছিল (এইভাবে দৃশ্যত jQuery পুনরায় আরম্ভ এবং UI আনলোড করা হচ্ছে) পূর্বে লোড হওয়া প্লাগইনগুলি)।

সমাধানটি ছিল যেখানে jQuery আসলে অন্তর্ভুক্ত ছিল এবং তার পরে jQuery UI স্ক্রিপ্টগুলি অন্তর্ভুক্ত করা উচিত।


0

আমি কেবল একটি অনুরূপ ইস্যু মধ্যে দৌড়ে। যখন আমি আমার স্ক্রিপ্টের রেফারেন্সটি স্ব-সমাপনী ট্যাগগুলি (যেমন, <script src=".." />) থেকে খালি নোডগুলিতে (অর্থাত্ <script src=".."></script>) পরিবর্তন করেছি তখন আমার ত্রুটিগুলি চলে গেছে এবং আমি হঠাৎ jQuery UI ফাংশনগুলি উল্লেখ করতে পারি।

সেই সময়, আমি বুঝতে পারি নি যে এটি আমার মস্তিষ্কের একদম ঠিক এটি শুরু করার জন্য এটি বন্ধ করে দেওয়া হয়নি। (আমি থ্রেড জুড়ে অন্য যে কেউ একই ধরণের সমস্যা নিয়ে আসছেন এমন সুযোগে এটি কেবল পোস্ট করছি))


0

কিছু কল করার আগে কোনও ফাইল লোড করে না।

উদাহরণস্বরূপ: আপনার কোড:

<%= javascript_include_tag "distpicker.min" %>
<%= javascript_include_tag "distpicker.data.min" %>

এটিতে পরিবর্তন করুন:

<%= javascript_include_tag "distpicker.data.min" %>
<%= javascript_include_tag "distpicker.min" %>

0

আমি _Layout.cshtml এ jquery বান্ডিলটি সরিয়ে এই সমস্যাটি সমাধান করতে পারলাম

শিরোলেখ

    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script src="~/Scripts/kendo/2015.2.902/kendo.all.min.js"></script>
    ...

পেয়াদা

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)

পাদলেখ পরিবর্তন করুন

    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)

0

আপনি কি tried ("# <% = txtDateElementId.ClientID%>") ব্যবহার করার চেষ্টা করেছেন date ডেটপিকার (); পরিবর্তে $ ("# txtDateElementId") date তারিখপিকার (); JQuery ব্যবহার করে আইডি দ্বারা কোনও উপাদান নির্বাচন করার সময়।


-1

আমার ক্ষেত্রে, এটি নিম্নলিখিত স্ক্রিপ্টগুলির আমদানি ক্রম পরিবর্তন করে সমাধান করা হয়েছিল: আগে (কাজ নয়):

কাজ করার পর):

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