Javascript JQuery冲突不起作用
我试图避免jquery 1.2.6和最新版本1.11.3 boostrap.js之间的冲突:Javascript JQuery冲突不起作用,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我试图避免jquery 1.2.6和最新版本1.11.3 boostrap.js之间的冲突: <script type="text/javascript" src="js/jquery.js"></script> <script type='text/javascript' src='js/custom.js'></script> <script type="text/javascript"> $().ready(funct
<script type="text/javascript" src="js/jquery.js"></script>
<script type='text/javascript' src='js/custom.js'></script>
<script type="text/javascript">
$().ready(function() {
var autocm = jQuery.noConflict();
autocm("#search").autocomplete("php/getvalues.php", {
width: 383,
matchContains: true,
//mustMatch: false,
//minChars: 0,
//multiple: true,
//highlight: true,
//multipleSeparator: ",",
selectFirst: false
});(autocm);
});
</script>
<script type='text/javascript' src="js/jquery-1.11.3.min.js"></script>
<script type='text/javascript' src="js/bootstrap.min.js"></script>
<script type='text/javascript' src="js/carousel.js"></script>
$('#carousel-text').html($('#slide-content-0').html());
//Handles the carousel thumbnails
$('[id^=carousel-selector-]').click( function(){
var id_selector = $(this).attr("id");
var id = id_selector.substr(id_selector.length-1);
var id = parseInt(id);
$('#myCarousel').carousel(id);
});
// When the carousel slides, auto update the text
$('#myCarousel').on('slid', function (e) {
var id = $('.item.active').data('slide-number');
$('#carousel-text').html($('#slide-content-'+id).html());
});
$().ready(函数()){
var autocm=jQuery.noConflict();
autocm(“#search”).autocomplete(“php/getvalues.php”{
宽度:383,
对,,
//mustMatch:false,
//明查斯:0,
//多重:对,
//推荐理由:没错,
//多重分隔符:“,”,
selectFirst:false
})(autocm),;
});
$('#carousel text').html($('#slide-content-0').html());
//处理旋转木马缩略图
$('[id^=carousel selector-]')。单击(函数(){
var id_selector=$(this.attr(“id”);
var id=id\u selector.substr(id\u selector.length-1);
var id=parseInt(id);
$(#myCarousel')。carousel(id);
});
//旋转木马滑动时,自动更新文本
$('myCarousel')。在('slided',函数(e)上{
变量id=$('.item.active')。数据('slide-number');
$('#carousel text').html($('#幻灯片内容-'+id).html());
});
如果我启用
<script type='text/javascript' src="js/jquery-1.11.3.min.js"></script>
<script type='text/javascript' src="js/bootstrap.min.js"></script>
<script type='text/javascript' src="js/carousel.js"></script>
自动完成功能不起作用
自动完成功能不起作用
我的猜测——这必须是一个猜测,因为您没有告诉我们关于自动完成的任何信息——是它使用了jQuery1.2.6中不再存在的内容,或者可能与jQuery1.11.3中的内容不太一样。您正在执行的noConflict
调用所做的就是在ready
回调中保护您的代码;当用户执行某项操作时,自动完成程序中使用$
或jQuery
访问jQuery的任何代码都将使用v1.11.3
这里最好的做法是不要尝试在同一页面中使用两个版本的jQuery。非常非常非常第二个最好的方法是编辑autocomplete以获取对jQuery
的本地引用,该引用在加载时生效,并继续使用该引用。(一个写得好的插件可以做到这一点,但是有很多写得不太好的插件…)
这可能很简单,只要把它放在js/custom.js
文件的开头:
(function($) {
var jQuery = $;
…最后是:
})(jQuery);
但同样,这是一个非常遥远的次优解决方案。最好不要使用jQuery 1.2.6。完全可以。以下是我所做的
<script type="text/javascript">
var autocm = jQuery.noConflict();
autocm().ready(function() {
autocm("#search").autocomplete("php/getvalues.php", {
width: 383,
matchContains: true,
//mustMatch: false,
//minChars: 0,
//multiple: true,
//highlight: true,
//multipleSeparator: ",",
selectFirst: false
});
});(autocm);
</script>
var autocm=jQuery.noConflict();
autocm().ready(函数()){
autocm(“#search”).autocomplete(“php/getvalues.php”{
宽度:383,
对,,
//mustMatch:false,
//明查斯:0,
//多重:对,
//推荐理由:没错,
//多重分隔符:“,”,
selectFirst:false
});
});(自动驾驶);
工作得很好。。只是在.ready(function(){之前添加了无冲突方法。更大的问题是:除了更新的东西之外,为什么还要继续使用已经过时多年的jQuery版本?
autocm(#search”).autocomplete(“php/getvalues.php”,{/*…*/})(autocm)
结尾的那一点是完全不可能的。这有点可疑。@T.J.Crowder.非常感谢,伙计……你刚刚睁开了我的眼睛……让它工作起来了……:)这应该不会有任何区别。