0

我有一个实时搜索,它使用无序列表,如下所示:

<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');

数据正常加载,但现在搜索不再起作用。我不习惯使用 ajax,所以也许这是一个常见问题?

提前致谢,

编辑:

当我添加这行代码,或者在其他地方提醒它时,它返回 1。ul 中总是只有一个元素。

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

仍然没有找到解决方案。

4

1 回答 1

0

该插件实际上有一个<li>被替换元素的缓存,因此您需要“取消绑定”以前的处理程序并重新绑定它,如下所示:

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

由于插件被绑定到.keyup()处理程序,您只需解除绑定并添加一个新的。要真正清理,您可以添加一个.parents('form').unbind('submit'),但如果您在 上有任何其他提交处理程序<form>,那将是一个坏主意 :)

于 2010-08-23T14:08:36.787 回答