【问题标题】:Deferred javascript noConflict different version jquery延迟的javascript noConflict不同版本的jquery
【发布时间】:2018-11-15 17:10:16
【问题描述】:

在我的一个函数中,我需要使用 两次 jquery 版本。一个用于 all 函数,另一个 jquery 用于 one 函数..

我无法控制延迟中的冲突。

<script defer type='text/javascript' src='<%=FrSettings.Settings.AppVirtualPath %>resource/js/jquery-11.0.min.js'></script>
<script defer type='text/javascript' src='<%=FrSettings.Settings.AppVirtualPath %>resource/js/unitegallery.min.js'></script>
<script defer type='text/javascript' src='<%=FrSettings.Settings.AppVirtualPath %>resource/js/ug-theme-carousel.js'></script>
<script defer type='text/javascript' src='<%=FrSettings.Settings.AppVirtualPath %>resource/js/jquery-3.3.1.min.js'></script>
window.addEventListener('DOMContentLoaded', function () {
        (function ($) {
            jQuery(document).ready(function ($) {

            // Need 2 different jquery version
            LoadVideos();
            });
        })(jQuery);
    });


       // Need only 1 jquery version
       window.addEventListener('DOMContentLoaded', function () {
        (function ($) {
            jQuery(document).ready(function ($) {
                LoadAnaOwl();
                LoadYayinAkisi();
                $('body').on('click', '.mansetPaginition li a', function () {
                    $('.mansetPaginition li a').removeClass('active');
                    $(this).addClass('active');
                });
                $(document).on('mouseenter mouseleave', '.mansetPaginition li a', function () {
                    $('.mansetPaginition li a').removeClass('active');
                    $(this).addClass('active');
                    window.location.hash = this.hash;
                });
            });
        })(jQuery);
    });
</script>

【问题讨论】:

    标签: javascript jquery html deferred-loading


    【解决方案1】:

    使用jQuery.noConflict

    jQuery.noConflict(bool) 将返回 jQuery 函数并将 $ 全局变量恢复为其旧引用。 bool 表示是否删除所有全局 jQuery 变量,包括 jQuery。如果加载了两个版本的 jQuery,则调用 jQuery.noConflict(true) 会将全局范围的 jQuery 变量恢复为第一个版本的变量。

    window.addEventListener('DOMContentLoaded', function () {
            (function ($) {
                jQuery(document).ready(function ($) {
                window.jq331 = jQuery.noConflict(true);
                // Need 2 different jquery version
                LoadVideos();
                });
            })(jQuery);
    });
    

    <script src="https://code.jquery.com/jquery-1.1.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
    var jq331 = jQuery.noConflict(true);
    //jQuery and $ is version 1.1.0
    //jq331 is version 3.3.1
    console.log('jQuery version:',jQuery.fn.jquery);
    console.log('$ version:', $.fn.jquery);
    console.log('jq331 version:',jq331.fn.jquery);
    </script>

    【讨论】:

    • 对于一个查询版本是 jq110 okey 但对于另一个?我在 LoadVideos 中需要 2 个 jquery 版本
    • @AlicanKablan 你不应该有 2 个不同版本的 jQuery。先解决这个问题。不要回复“但我需要它”,想办法解决它。
    • @hev1 谢谢我的朋友,这是我的答案。
    • @AlicanKablan 没问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    相关资源
    最近更新 更多