异步加载时jQuery livesearch不工作
我有一个livesearch,它使用无序列表,如下所示:异步加载时jQuery livesearch不工作,jquery,livesearch,Jquery,Livesearch,我有一个livesearch,它使用无序列表,如下所示: <input id="search"/> <ul id="list> <li>1</li> <li>2</li> </ul> $('#list').load('/search/accountname', function() { $('#search').unbind('keyup').liveUpdate('#list'); }); 起初
<input id="search"/>
<ul id="list>
<li>1</li>
<li>2</li>
</ul>
$('#list').load('/search/accountname', function() {
$('#search').unbind('keyup').liveUpdate('#list');
});
起初我用一个静态列表进行测试,它工作得很好。
现在,我尝试使用以下语句异步加载它:
//$('#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);
仍然没有找到解决方案。插件实际上有一个正在被替换的
元素的缓存,因此您需要“解除”前处理程序的绑定并重新绑定它,如下所示:
<input id="search"/>
<ul id="list>
<li>1</li>
<li>2</li>
</ul>
$('#list').load('/search/accountname', function() {
$('#search').unbind('keyup').liveUpdate('#list');
});
由于是装配到处理程序的,您只需解除绑定并添加一个新的。要真正清理,您可以添加一个
.parents('form').unbind('submit')
,但是如果您在
上有任何其他提交处理程序,那将是一个坏主意:)谢谢,但我得到的liveUpdate不是一个函数错误。变体也不起作用。@baklap-您是碰巧在页面中还是在加载的页面中再次包含jQuery?当它发生时,所有的插件都会被清除。@NickCraver-No我把它放在.js加载队列的末尾。我必须添加:$('search').liveUpdate('list').focus();在最后重新绑定它,不是吗?但是仍然不起作用。@baklap-不……如果你得到的不是一个函数
,那么插件就会被删除……如果你有一个链接,我可以快速查看一下。我想要,但它在开发服务器上本地运行。可能是因为liveUpdate是在加载之后绑定的。让我看看。编辑:nup,仍然是相同的错误