توقف jQuery UI Autocompete عن العمل
-
29-09-2019 - |
سؤال
لسبب ما ، توقف الإكمال التلقائي لـ JQuery UI عن العمل بالنسبة لي. أحصل على نفس الخطأ كما هو موضح في صفحة الويب هذه.
لقد قمت بنسخ محتوى الاستعلام من صفحة الويب هذه أدناه ، على أمل أن يتمكن شخص ما هنا من الإجابة عليه.
شكرًا!
انا استخدم Jquery UI Autocomplete
للحصول على قائمة بالأسماء. لكن لسبب ما أتلقى خطأ:
$('#repName').removeAttr('readonly').focus(function () { $(this).val(''); }).autocomplete({ source: function (request, response) { tagId = $('#TagId').val(); $.ajax({ url: '/Developement/GetRepName', type: 'POST', dataType: 'json', data: { searchText: request.term, maxResults: 10, tagId: tagId }, success: function (data) { response($.map(data, function (item) { return { label: item.Name, value: item.RepId, id: item.RepId } })) } }) }, select: function (event, ui) { commissionAllicationModifications(ui.item.id, 0, 'A'); } });
ليس لدي أدنى فكرة عن سبب حدوث هذا. أنا أستخدم jQuery UI 1.8.1.
سأكون أقدر أي نوع من المساعدة في هذا.
إنه يأتي من ملف jQuery UI 1.8.1 ، وتحديداً jquery ui explete 1.8.1.
.menu({ focus: function (event, ui) { var item = ui.item.data("item.autocomplete"); if (false !== self._trigger("focus", null, { item: item })) { // use value to match what will end up in the input, if it was a key event if (/^key/.test(event.originalEvent.type)) { self.element.val(item.value); } } }, selected: function (event, ui) { var item = ui.item.data("item.autocomplete"); if (false !== self._trigger("select", event, { item: item })) { self.element.val(item.value); } self.close(event); // only trigger when focus was lost (click on menu) var previous = self.previous; if (self.element[0] !== doc.activeElement) { self.element.focus(); self.previous = previous; } self.selectedItem = item; }, * blur: function (event, ui) { * if (self.menu.element.is(":visible")) { * self.element.val(self.term); * } * } }) .zIndex(this.element.zIndex() + 1) // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 .css({ top: 0, left: 0 }) .hide() .data("menu");
إنه غريب على الرغم من أن هذا يعمل بلا عيب في مشروع آخر. ما لاحظته هو عندما يضرب الكود قسم [starred] ، فإن قسم Self.menu غير محدد. شيء آخر من الملاحظة هو أنه لا يرسل الطلب. كنت أفكر في أنها قد تكون وظيفة التركيز الخاصة بي.
.focus(function () { $(this).val('');
لكنه ليس كذلك. شكرا لك على مساعدتك.
المحلول
اتضح أنني قمت بتضمين مكون إضافي تم تعريفه $.fn.menu
وهذه الفوضى المطاورة. لقد غيرته إلى $.fn.fg_menu
وتم حل المشكلة.
نصائح أخرى
ما هو إصدار JQuery Core الذي تستخدمه؟
أنا أعرف خطأ يتعلق بـ الكشف المرئي وعلاقة إلى IE8. إذا كان ذلك ممكنًا ، هل يمكنك الترقية إلى أحدث jQuery على جهاز اختبار ومعرفة ما إذا كان ذلك يحل مشكلتك؟
إذا كنت لا تشعر بالترقية ، فيمكنك أيضًا محاولة اختراق jQuery (قبيح!) - مع هذا:
if (self.menu.element.is(":visible"))
يصبح
if (!(self.menu.element.css('display') == 'none'))