jQuery noConflict,或者什么

jQuery noConflict, or what?

本文关键字:什么 或者 noConflict jQuery      更新时间:2023-09-26

我是一名学生,在代码开发领域没有太多背景知识。我只是运行了我的网站,想把jetmenu放在我的模板下(就这样!)。

这是飞机菜单

http://codecanyon.net/item/jet-responsive-megamenu/5719593

但一旦我把它放在模板下,它就只能在父菜单上工作,而子菜单本身根本不起作用。我试着打开firebug,它说"!@#@!@#不是一个函数"

浏览网页,发现问题。也就是说,该模板使用不同版本的jQuery的2个库。试图在noConflict中实现一些技术技巧,但总是运气不佳。

这是代码。

   <meta http-equiv="X-UA-Compatible" content="IE=8" />
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script>
    sQuery = jQuery.noConflict(true);
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script>
    jQuery(document).ready(function() {
      jQuery().jetmenu();
    });
</script>
<script src="{$baseurl}/js/jetmenu.js"></script>
<script src="{$baseurl}/js/jquery.customSelect.js"></script>

我最初认为我可以像"xxQuery=jQuery.noConflict(true)"这样引用,但如果它需要使用库编辑整个jQuery代码(用xxjQuery替换$)将浪费时间。

我想你可以这样做:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script>
    var jq191 = jQuery.noConflict(true);
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script>
    var jq132 = jQuery.noConflict(true);
</script>
<script>
    jq191(document).ready(function() {
       // use the newer version to load the script
        jq191.getScript( "{$baseurl}/js/jetmenu.js" )
          .done(function( script, textStatus ) {
            console.log( textStatus );
            // locally override the $() to use the older version of jQuery
            var $ = jq132;
            // Use the loaded script
            $.jetmenu();
          })
          .fail(function( jqxhr, settings, exception ) {
            console.error( "Triggered ajaxError handler." );
          });
        // use the newer one from now on
        $ = jq191;
    }); // ready
</script>

此外,您可能会发现这些解决方案很有用:我可以在同一页面上使用多个版本的jQuery吗?