我有一个生活搜索,它使用了一个无序的列表,例如:

<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,所以这也许是一个常见的问题?

提前致谢,

编辑:

当我添加此代码行,或在其他地方提醒它。UL中总是只有一个元素。

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

仍然没有发现。

有帮助吗?

解决方案

该插件实际上具有 <li> 被替换的元素,因此您需要“解开”以前的处理程序并再次绑定它,这样:

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

自从 插件 被操纵到 .keyup() 处理程序,您只是在解开并添加新的。到 真的 清理,您可以添加 .parents('form').unbind('submit'), ,但是如果你有 其他<form>, ,这是一个坏主意:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top