jQuery Livesearch ne fonctionne pas lors du chargement de manière asynchrone

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

  •  30-09-2019
  •  | 
  •  

Question

J'ai un Livesearch et utilise une liste non ordonnée, comme ceci:

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

Maintenant, je dois la mettre fonction Livesearch sur les éléments suivants:

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

Au début, je testais une liste statique, il a travaillé comme un charme. Maintenant, je suis en train de charger asynchrone avec les énoncés suivants:

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

Les données sont chargées normalement, mais maintenant la recherche ne fonctionne plus. Je ne suis pas habitué à utiliser ajax alors peut-être c'est un problème commun?

Merci à l'avance,

EDIT:

Quand j'ajoute cette ligne de code, ou une alerte à un autre endroit, il retourne 1. Il y a toujours un seul élément dans le ul.

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

Toujours pas sollution trouvé.

Était-ce utile?

La solution

Le plugin a en fait un cache des éléments <li> qui sont remplacés, de sorte que vous devez « délier » l'ancien gestionnaire et re-lier à nouveau, comme ceci:

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

Depuis le plugin est truqué jusqu'à la

scroll top