我正在写一个插件来执行堆栈溢出等标签。现在我已经得到了插件或多或少的工作,除了我还没有解决的一个问题。我要么从对象或网址中获取我的源代码。当然不是在同一时间。所以我想切换它们,但是不能在自动完成插件中放置if语句,并且我不确定在运行自动完成之前是否可以构建源代码行。如何在jQuery UI自动完成上切换源代码
所以我要么我的源被从settings.avalableTags或从我下面的url代码。有没有什么方法可以在自动完成之前或内部切换这些。
这是我的代码。
$(idtag).find('input').autocomplete({
//source: settings.availableTags,
source: function(request, response) {
$.ajax({
url: settings.url,
data: $.extend(settings.data, {
'term': $(idtag).find('input').val()
}),
dataType: 'JSON',
type: "POST",
success: function(data) {
response(data);
}
});
},
minLength: 2,
select: function(event, ui) {
id = $(this).parent().parent().attr('id');
idtag = "#" + id;
$(idtag).find('input').val(ui.item.label);
base.addTag();
},
change: function(event, ui) {
if (!ui.item) {
$(this).val('');
}
}
}).keydown(function(e) {
if (e.keyCode === 13 || e.keyCode === 188) {
$(this).blur().val('');
};
});
我试过穆罕默德的建议。现在,如果我设置了availableTags(false),它将起作用,但在更改为true时不起作用。所以它没有正确运行我的功能。我相信这是因为我不能把在张贴如
var availableTags =function (condition){
if(condition){
return settings.availableTags
}else{
$.ajax({ url: settings.url,
data: $.extend(settings.data,{'term': $(idtag).find('input').val()}),
dataType: 'JSON',
type: "POST",
success: function(data){
return response(data);
}
});
}
}
}
我试过你的建议从这个例子。我可以得到一个工作,但我无法让我的网址代码工作。我想知道你能否告诉我你会怎么做。我编辑了我的帖子以显示我尝试过的内容 –