我已经根据文档设置了JQuery UI自动完成功能,它适用于任何带有class =“tag-item”输入的页面。然而,用户可以通过JS将输入添加到dom中,所以我需要一种方法将自动完成绑定到使用委托创建的新动态输入。我不知道如何设置这个,任何想法将不胜感激。jquery ui自动完成与委托
谢谢
我已经根据文档设置了JQuery UI自动完成功能,它适用于任何带有class =“tag-item”输入的页面。然而,用户可以通过JS将输入添加到dom中,所以我需要一种方法将自动完成绑定到使用委托创建的新动态输入。我不知道如何设置这个,任何想法将不胜感激。jquery ui自动完成与委托
谢谢
您可以使用'focusin'事件进行委派来设置您的输入字段。
我曾在此一展身手,可就是不能使它工作,这是我的尝试:
对于它的价值,这就是我最终使用:
$('#some-container').delegate('input.to-autocomplete', 'focus', function(e) {
$(this).autocomplete({
source: autocomplete_url
/* etc, etc */
});
});
$('#some-container').delegate('input.to-autocomplete', 'blur', function(e) {
var target = $(this);
if (target.hasClass('ui-autocomplete-input')) {
target.autocomplete('destroy');
}
});
我的希望是,它会减轻负担上的浏览器,因为我自动填充(可能)几百个元素然后自动完成结果,否则开始叠加。
对我下面的工作:
$('#autocomplete').on('focusin', 'input', function(){
$(this).autocomplete({
});
});
在我看来这个解决方案的气味,但我最终只是包裹在一个函数的代码和调用功能齐全的功能,新的输入注入后DOM。据我可以告诉我将不得不改变自动完成的代码,使其与委托工作。我100%肯定有更好的方法,所以这是一个评论,而不是一个明显的答案。 – Paul 2010-04-16 18:11:00