我有一个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);
仍然没有找到溶剂。
答案 0 :(得分:0)
该插件实际上有一个正被替换的<li>
元素的缓存,因此您需要“取消绑定”前一个处理程序并重新绑定它,如下所示:
$('#list').load('/search/accountname', function() {
$('#search').unbind('keyup').liveUpdate('#list');
});
由于the plugin被绑定到.keyup()
处理程序,因此您只需解除绑定并添加新的处理程序。要真正清理,您可以添加.parents('form').unbind('submit')
,但如果您在<form>
上有任何其他提交处理程序,那就是坏主意:))