如何将jquery ui自动完成添加到动态创建的元素中?
我试图让jQueryUI自动完成在动态创建的表单输入元素上触发,但它不起作用。我曾尝试在$.live()中使用keyup.autocomplete和keydown.autocomplete作为绑定事件,但它绑定到新元素-仅绑定到页面上已经存在的元素 尝试代码(尝试在第一个输入中键入“ava”,然后单击“添加输入”,并在新输入中键入相同的代码) JavaScript:如何将jquery ui自动完成添加到动态创建的元素中?,jquery,jquery-ui,autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Autocomplete,Jquery Ui Autocomplete,我试图让jQueryUI自动完成在动态创建的表单输入元素上触发,但它不起作用。我曾尝试在$.live()中使用keyup.autocomplete和keydown.autocomplete作为绑定事件,但它绑定到新元素-仅绑定到页面上已经存在的元素 尝试代码(尝试在第一个输入中键入“ava”,然后单击“添加输入”,并在新输入中键入相同的代码) JavaScript: $(function() { $("input#addButton").click(function() {
$(function() {
$("input#addButton").click(function() {
$("input.searchInput:last").clone(true).appendTo($(this).closest("form"));
$("input.searchInput:last").val("");
})
$("input.searchInput").live("keydown.autocomplete", function() {
$(this).autocomplete({
source: [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
],
minLength: 2
});
})
});
HTML:
这项工作:
var options = {
source: ["ActionScript", "AppleScript"],
minLength: 2
};
var selector = 'input.searchInput';
$(document).on('keydown.autocomplete', selector, function() {
$(this).autocomplete(options);
});
$(函数(){
变量选项={
资料来源:[
“动作脚本”,
“AppleScript”,
“Asp”,
“基本”,
“C”,
“C++”,
“Clojure”,
“COBOL”,
“ColdFusion”,
“二郎”,
“Fortran”,
“好极了”,
“哈斯克尔”,
“爪哇”,
“JavaScript”,
“口齿不清”,
“Perl”,
“PHP”,
“Python”,
“红宝石”,
“斯卡拉”,
“方案”
],
最小长度:2
};
$(“input.searchInput”).live(“keydown.autocomplete”,function()){
$(此).autocomplete(选项);
});
var addInput=函数(){
var inputtml=“”;
$(inputtml).appendTo(“form#myForm”);
$(“input.searchInput:last”).focus();
};
if(!$(“form#myForm”).find(“input.searchInput”).length){
addInput();
}
$(“输入#添加按钮”)。单击(添加输入);
});代码>
现在不推荐使用Function.live()
看起来代码如下所示:
var options = {
source: ["ActionScript", "AppleScript"],
minLength: 2
};
var selector = 'input.searchInput';
$(document).on('keydown.autocomplete', selector, function() {
$(this).autocomplete(options);
});
出于好奇,您是否尝试过在每次为所创建的特定对象创建控件时执行绑定?很好的解决问题的起点…@Dutchie432:是的,我做了--同样的结果。@Eric:你的小提琴(jsfiddle.net/6t74T/1)在Chrome上对我很有用。我在添加的框上也会自动完成。@Chief:你说得对。。。它也适用于IE8。Hmmm必须是IE9的问题……只有在创建新输入后重置绑定时,这才在IE8中起作用-jsfiddle.net/6t74T/2。JSFIDLE可以工作,但不是我的实际代码…更改接受的答案,因为它与新版本兼容。谢谢!刚刚帮助我解决了Rails3.2中的一个嵌套表单字段问题,试图让autocomplete工作!你好@Andrei,你也能看一下吗。感谢大多数为我工作的人,我不得不更改$(这个)
到$(this.autocomplete({source:options})代码>虽然。救命恩人!很有魅力。你好@Eric,你也能看看吗。谢谢你看看这些问题你有什么解决办法吗: