【发布时间】:2015-07-16 14:30:47
【问题描述】:
我正在使用 Textextjs autocomplete with tags
在上面的示例中,list 是一个简单的 json 数组。
我想从 ajax 函数中获取它的价值。
在这种情况下,ajax 调用执行较晚。因此,预期的结果受到干扰。 看看下面的代码
$('#textarea')
.textext({
plugins : 'tags autocomplete'
})
.bind('getSuggestions', function(e, data)
{
console.log(1);
search_text = (data ? data.query : '') || '';
var urll = 'url_to_get_result';
// call ajax function
var suggestionss = getSuggestions(search_text, urll);
console.log(4);
$("#output1").val();
var list = suggestionss,
textext = $(e.target).textext()[0],
query = (data ? data.query : '') || '';
$(this).trigger(
'setSuggestions',
{ result : textext.itemManager().filter(list, query) }
);
});
function getSuggestions(search_text, urll)
{
console.log(2);
$.ajax({
'url': urll,
'data': {'wt':'json'},
type: 'GET',
'success': function(data) {
jsonObj = [];
var count = data.count.length;
for(i=0; i<count; i++)
{
var name = data.name.docs[i].term_suggest_ngram;
autosuggestitem = {}
autosuggestitem = '"'+name+'"';
jsonObj.push(autosuggestitem);
}
var result = JSON.stringify(jsonObj);
availableSearch = JSON.parse(result);
console.log(3);
$("#output1").val(availableSearch);
},
'dataType' : 'jsonp',
'jsonp': 'json.wrf'
});
var return_val = $("#output1").val();
return return_val;
}
查看控制台语句,这些是按顺序执行的
1 - 2 - 4 - 3
预期的行为应该是
1 - 2 - 3 - 4
有人可以帮我吗?
【问题讨论】:
标签: javascript jquery ajax autocomplete jquery-textext