Frage

Ich habe eine Suchmaschine mit Ranking und es verwendet eine ungeordnete Liste, wie folgt aus:

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

Jetzt habe ich die Livesearch-Funktion setzen auf diesen Artikel:

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

Zuerst war ich mit einer statischen Liste zu testen, es funktionierte wie Charme. Ich versuche es jetzt mit den folgenden Aussagen asynchron geladen werden:

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

Die Daten werden als normal geladen, aber jetzt die Suche funktioniert nicht mehr. Ich bin, dass Ajax nicht verwendet, so vielleicht ist dies ein weit verbreitetes Problem zu verwenden?

Vielen Dank im Voraus,

EDIT:

Wenn ich diese Zeile Code, oder eine Warnung es sich woanders wieder 1. Es gibt immer nur ein Element in der ul.

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

Still gefunden keine sollution.

War es hilfreich?

Lösung

Das Plugin hat tatsächlich einen Cache der <li> Elemente, die ersetzt werden, so dass Sie den ehemaligen Handler und wieder binden, es wieder zu „unbind“ müssen, wie diese:

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

Da das Plugin wird auf die .keyup() Handler, die Sie freibleibend nur, dass und eine neue hinzufügen. Um wirklich aufzuräumen, können Sie einen .parents('form').unbind('submit') hinzufügen könnte, aber wenn Sie hatte andere einreichen Handler auf dem <form>, das wäre eine schlechte Idee:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top