JQuery Livesearch لا يعمل عند التحميل بشكل غير متزامن

StackOverflow https://stackoverflow.com/questions/3548238

  •  30-09-2019
  •  | 
  •  

سؤال

لدي Livesearch ويستخدم قائمة غير مرتبة ، مثل هذا:

<input id="search"/>
<ul id="list>
  <li>1</li>
  <li>2</li>
</ul>

الآن لدي وظيفة Livesearch وضعت على هذه العناصر:

$('#search').liveUpdate('#list').focus();

في البداية كنت أختبر بقائمة ثابتة ، عملت مثل السحر. الآن أحاول تحميله غير متزامن مع العبارات التالية:

//$('#list').load('/search/organization');
//$('#list').load('/search/person');
//$('#list').load('/search/debitor');
$('#list').load('/search/accountname');

يتم تحميل البيانات كالمعتاد ولكن الآن لم يعد البحث يعمل. أنا لست معتادًا على استخدام أياكس ، لذا ربما تكون هذه مشكلة شائعة؟

شكرا مقدما،

تعديل:

عندما أضيف هذا السطر من التعليمات البرمجية ، أو تنبيهه في مكان آخر ، فهو يعود 1. دائمًا هناك عنصر واحد فقط في UL.

$('#list').load('/search/organization');
var test = jQuery('#list');
alert(test.length);

لم يتم العثور على Sollution.

هل كانت مفيدة؟

المحلول

يحتوي البرنامج المساعد بالفعل على ذاكرة التخزين المؤقت <li> العناصر التي يتم استبدالها ، لذلك تحتاج إلى "فك" المعالج السابق وإعادة ربطه مرة أخرى ، مثل هذا:

$('#list').load('/search/accountname', function() {
  $('#search').unbind('keyup').liveUpdate('#list');
});

حيث البرنامج المساعد تم تزويره حتى .keyup() معالج ، أنت فقط تخلص من ذلك وإضافة واحدة جديدة. إلى حقًا تنظيف ، يمكنك إضافة ملف .parents('form').unbind('submit'), ، ولكن إذا كان لديك أي آخر إرسال معالجات على <form>, ، ستكون هذه فكرة سيئة :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top