未捕获的TypeError:无法读取未定义的属性“autocomplete”

时间:2015-12-21 17:45:01

标签: javascript jquery autocomplete monkeypatching

我使用自动完成逻辑,因为我们的主页输入框和&它工作正常,但今天它突然不工作&显示此行代码的错误

jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) {

错误:未捕获的TypeError:无法读取未定义的属性“autocomplete”

我自动完成逻辑的完整代码是

<script type="text/javascript">

function monkeyPatchAutocomplete() {

jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) {
    var re = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + this.term + ")(?![^<>]*>)(?![^&;]+;)", "gi");
    var t = item.label.replace(re,"<span style='font-weight:bold;color:#434343;'>" + 
            "$&" + 
            "</span>");
    return jQuery( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + t + "</a>" )
        .appendTo( ul );
};
}

function getKeywords(){

    var allKeywords = <?php echo json_encode($allKeywords); ?>;

    return allKeywords;
}

var URL = '<?php e(SITE_URL); ?>fronts/search';

jQuery(document).ready(function(){

monkeyPatchAutocomplete();

var username = jQuery('#username');

username.autocomplete({
minLength    : 1,
source        : URL
});

var CityKeyword = jQuery('#CityKeyword');

CityKeyword.autocomplete({
minLength    : 1,
source        : getKeywords()
});

});

// A custom jQuery method for placeholder text:

jQuery.fn.defaultText = function(value){

var element = this.eq(0);
element.data('defaultText',value);

element.focus(function(){
if(element.val() == value){
element.val('').removeClass('defaultText');
}
}).blur(function(){
if(element.val() == '' || element.val() == value){
    element.addClass('defaultText').val(value);
}
});

return element.blur();
}
</script>

请分享可能导致此问题的原因。

0 个答案:

没有答案