按函数don'自动完成jquery ui提要;跑不动

按函数don'自动完成jquery ui提要;跑不动,jquery,jquery-ui,autocomplete,Jquery,Jquery Ui,Autocomplete,我有这个html: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smooth

我有这个html:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Autocomplete - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.9.1.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">  
</head>
<body>
  <label for="search">Tags: </label>
  <input id="search" placeholder="Pelicula" autofocus> 
</body>
</html>
}))

但是,我给autocomplete提供了一个返回相同数组的函数,autocomplete崩溃了:

$(函数(){

}))

我看不出有什么道理。我做错了什么


注意:我这样做是因为我想在函数之后更改,从api返回一个带有查询json+ajax值的数组。

这应该适合您。它取自文件

$("#search").autocomplete({
    source: function( request, response ) {
        var tags = ["paco", "pablo", "pedro", "pepe"];
        var matcher = new RegExp( '^' + $.ui.autocomplete.escapeRegex(request.term), 'i');
        response( $.grep(tags, function(item) {
            return matcher.test( item );
        }) );
    }
});

我只是这样做,它运行:

$(function() {
arr = getTags();

$( "#search" ).autocomplete({
  source: arr
});

function getTags(){
  return ["paco", "pablo", "pedro", "pepe"];
}

}))

在重新加载之前,请先尝试销毁它<代码>$(“#搜索”).autocomplete(“destroy”)@user3158900它一直崩溃可能是因为它比另一行先被调用。尝试删除第一行。它对我来说非常有效。
$("#search").autocomplete({
    source: function( request, response ) {
        var tags = ["paco", "pablo", "pedro", "pepe"];
        var matcher = new RegExp( '^' + $.ui.autocomplete.escapeRegex(request.term), 'i');
        response( $.grep(tags, function(item) {
            return matcher.test( item );
        }) );
    }
});
$(function() {
arr = getTags();

$( "#search" ).autocomplete({
  source: arr
});

function getTags(){
  return ["paco", "pablo", "pedro", "pepe"];
}