在异步加载时,jQuery livesearch无法正常工作

时间:2010-08-23 13:57:22

标签: jquery livesearch

我有一个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');

数据正常加载但现在搜索不再有效。我不习惯使用ajax所以这可能是一个常见的问题吗?

提前致谢,

编辑:

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

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

仍然没有找到溶剂。

1 个答案:

答案 0 :(得分:0)

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

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

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