我到处搜索,但似乎找不到任何帮助...
我有一些文本框是通过 JS 动态创建的,所以我需要将它们的所有类绑定(bind)到自动完成。因此,我需要使用新的 .live() 选项。
举个例子,现在和将来创建一个类为 .foo 的所有项目:
$('.foo').live('click', function(){
alert('clicked');
});
它采用(和行为)与 .bind() 相同。但是,我想绑定(bind)一个自动完成...
这行不通:
$('.foo').live('autocomplete', function(event, ui){
source: 'url.php' // (surpressed other arguments)
});
如何使用 .live() 绑定(bind)自动完成?
更新
用 Framer 解决了这个问题:
$(function(){
$('.search').live('keyup.autocomplete', function(){
$(this).autocomplete({
source : 'url.php'
});
});
});
最佳答案
jQuery UI 自动完成功能自动将类“ui-autocomplete-input”添加到元素。我建议在没有“ui-autocomplete-input”的情况下实时绑定(bind)焦点元素 类以防止重新绑定(bind)该元素内的每个 keydown 事件。
$(".foo:not(.ui-autocomplete-input)").live("focus", function (event) {
$(this).autocomplete(options);
});
编辑
自 jQuery 1.7 以来,我的回答现在已经过时了,请参阅 Nathan Strutz 对使用新的 .on()
语法的评论。
关于binding - 使用 .live() 绑定(bind) jQuery UI 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4551230/