首页 > 解决方案 > TypeError:this.source 不是函数,this.source 为 null

问题描述

我正在尝试重做本教程,当我搜索自动完成时出现错误TypeError: this.source is not a function。(在 'this.source( { term: value }, this._response() )' 中,'this.source' 为空)

    $.getJSON(url, function(data) {
            stateLayer.addData(data);
                        console.log(data);
            for (i = 0; i < data.features.length; i++) {  //loads State Name into an Array for searching
                arr1.push({label:data.features[i].properties.STATE_NAME, value:""});
            }
           addDataToAutocomplete(arr1);  //passes array for sorting and to load search control.
        });
     stateLayer.addTo(map);
    function addDataToAutocomplete(arr) {
                     
            arr.sort(function(a, b){ // sort object by Name
                var nameA=a.label, nameB=b.label
                if (nameA < nameB) //sort string ascending
                    return -1 
                if (nameA > nameB)
                    return 1
                return 0 //default return value (no sorting)
            })
    
            // The source for autocomplete.  https://api.jqueryui.com/autocomplete/#method-option
            $( "#autocomplete" ).autocomplete("option", "source", arr); 
        
            $( "#autocomplete" ).on( "autocompleteselect", function( event, ui ) {
                polySelect(ui.item.label);  //grabs selected state name
                ui.item.value='';
            });
        }

标签: javascriptjqueryleafletopenstreetmap

解决方案


推荐阅读