jQuery 1.6 and 1.7 Conflict



我以前使用的是jQuery 1.6。然后,需要一个与jQuery1.7配合使用的幻灯片。

在我的HTML页面上,两个版本都有冲突。任何避免jQuery冲突的解决方案都将在以下代码中得到赞赏。。。

<script src="js/jquery-1.6.4.min.js" type="text/javascript"></script> 
    <script type="text/javascript">
        $.noConflict();
        $(document).ready(function(){
            $('#nav ul').superfish();
            packages_slider();
            testimonials_slider(); 
            set_datepicker();       
            set_select();
            set_captcha(true);
            validation();
            jquery_miscellaneous();
        });
    </script>
    <script src="js/jquery-ui.1.8.16.min.js" type="text/javascript"></script>
    <script src="js/jquery.easing.1.3.js" type="text/javascript"></script>
    <script src="js/sliders.js" type="text/javascript"></script>
    <script src="js/superfish.js" type="text/javascript"></script>
    <script src="js/pdate.js" type="text/javascript"></script>
    <script src="js/jquery.datepick.pack.js" type="text/javascript"></script>
    <script src="js/jquery.selectbox-0.1.3.min.js" type="text/javascript"></script>
    <script src="js/jquery.validate.min.js" type="text/javascript"></script>
    <script src="js/jquery.form.js" type="text/javascript"></script>
    <script src="js/miscellaneous.js" type="text/javascript"></script>

    <script type="text/javascript" src="js/jquery-1.7.2.min.js"> </script>
    <script type="text/javascript">
            $.noConflict();
        jQuery(document).ready(function($){
            $('#basic-slider').advancedSlider({width: 1200, 
                                               height: 600, 
                                                }
            });
        });
        </script>
    <script type="text/javascript" src="js/jquery.transition.min.js"></script>
    <script type="text/javascript" src="js/jquery.advancedSlider.min.js"></script>  

不要同时使用这两个版本。只需升级到1.71.8即可。

有一些肮脏的技巧可以让它(部分)工作,但这会带来麻烦,需要大量的维护,并且下载到客户端的代码量是原来的两倍。你真的不想走那条路。

您需要了解$.noConflict()的工作原理。您调用的第一个$.noConflict()$重置为未定义,这意味着第一个$(document).ready()将出错,因为$不是您期望的函数。

如果你保留第二个$.noConfict(),在你调用它之后,你会得到以下内容;

  • $将指向jQuery 1.6.4
  • jQuery将指向jQuery 1.7.2

最新更新