Javascript jquery-1.9.1.min.js与jquery.js/jquery.autocomplete.js之间的冲突

Javascript jquery-1.9.1.min.js与jquery.js/jquery.autocomplete.js之间的冲突,javascript,jquery,Javascript,Jquery,使用此自动完成脚本 其中包括:jquery.js和jquery.autocomplete.js,这些javascript是必需的 但我还必须使用jquery-1.9.1.min.js来实现autosave和其他功能 不幸的是,它们之间存在冲突。自动完成不适用于jquery-1.9.1.min.js(也不适用于jquery 1.10.1) 如果remove 1.9.1.min.js不适用于其他脚本 尝试使用jQuery和jQuery.noConflict()代替一个$位于标签下方。 没有成功 尝试

使用此自动完成脚本 其中包括:jquery.js和jquery.autocomplete.js,这些javascript是必需的

但我还必须使用jquery-1.9.1.min.js来实现autosave和其他功能

不幸的是,它们之间存在冲突。自动完成不适用于jquery-1.9.1.min.js(也不适用于jquery 1.10.1)

如果remove 1.9.1.min.js不适用于其他脚本

尝试使用
jQuery
jQuery.noConflict()代替一个
$
位于标签下方。 没有成功

尝试使用其他自动完成脚本,但响应非常慢

在jquery.js和jquery.autocomplete.js中,大约有3000行。。。用实验来找出问题所在似乎是不合理的

如果有人面临同样的问题,请提出建议

下面是代码(如果感兴趣的话)

jquery.js和jquery.autocomplete.js对于下面的javascript是必需的

(function ($) {
    jQuery('[id^="partner_name_or_description"]').each(function (index, partner_name_or_description) {
        var partner_name_or_description = partner_name_or_description.id.substring(27);
    });
})(jQuery);
/**/function findValue(li) {
    /*if( li == null ) return alert("No match!");
    // if coming from an AJAX call, let's use the CityId as the value
    if( !!li.extra ) var sValue = li.extra[0];
    // otherwise, let's just display the value in the text box
    else var sValue = li.selectValue;
    alert("The value you selected was: " + sValue);*/
}

function selectItem(li) {
    findValue(li);
}

function formatItem(row) {
    return row[0] + " (id: " + row[1] + ")";
}

/*function lookupAjax(){
var oSuggest = $("#CityAjax")[0].autocompleter;
oSuggest.findValue();
return false;
}*/

/*function lookupLocal(){
var oSuggest = $("#CityLocal")[0].autocompleter;
oSuggest.findValue();
return false;
}*/


$("#partner_name_or_description1:input, #partner_name_or_description2:input, #partner_name_or_description3:input").autocomplete(
    "__autocomplete_source.php",
    {
        delay: 10,
        minChars: 2,
        matchSubset: 1,
        matchContains: 1,
        cacheLength: 10,
        onItemSelect: selectItem,
        onFindValue: findValue,
        formatItem: formatItem,
        autoFill: true
    }
);

使用jquery迁移:您不需要在插件本身中包含jquery。只需包含jquery 1.9.1,然后是jquery.autocomplete,应该很好哦,真不敢相信我的眼睛!!!简单的粘贴代码.jquery.com/jquery-migrate-1.2.1.js“>在jquery-1.9.1.min.js下面,一切都很好!这么简单的解决方案!在上面的第一个脚本中,您在本地为jquery定义范围
$
,但随后使用全局
jquery
,这很奇怪。
/**/function findValue(li) {
    /*if( li == null ) return alert("No match!");
    // if coming from an AJAX call, let's use the CityId as the value
    if( !!li.extra ) var sValue = li.extra[0];
    // otherwise, let's just display the value in the text box
    else var sValue = li.selectValue;
    alert("The value you selected was: " + sValue);*/
}

function selectItem(li) {
    findValue(li);
}

function formatItem(row) {
    return row[0] + " (id: " + row[1] + ")";
}

/*function lookupAjax(){
var oSuggest = $("#CityAjax")[0].autocompleter;
oSuggest.findValue();
return false;
}*/

/*function lookupLocal(){
var oSuggest = $("#CityLocal")[0].autocompleter;
oSuggest.findValue();
return false;
}*/


$("#partner_name_or_description1:input, #partner_name_or_description2:input, #partner_name_or_description3:input").autocomplete(
    "__autocomplete_source.php",
    {
        delay: 10,
        minChars: 2,
        matchSubset: 1,
        matchContains: 1,
        cacheLength: 10,
        onItemSelect: selectItem,
        onFindValue: findValue,
        formatItem: formatItem,
        autoFill: true
    }
);