我正在寫一個插件來執行堆棧溢出等標籤。現在我已經得到了插件或多或少的工作,除了我還沒有解決的一個問題。我要麼從對象或網址中獲取我的源代碼。當然不是在同一時間。所以我想切換它們,但是不能在自動完成插件中放置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);
}
});
}
}
}
我試過你的建議從這個例子。我可以得到一個工作,但我無法讓我的網址代碼工作。我想知道你能否告訴我你會怎麼做。我編輯了我的帖子以顯示我嘗試過的內容 –