添加Jquery没有冲突代码到我当前的代码

时间:2016-02-19 06:47:42

标签: javascript jquery

我真的从未使用过jQuery,所以我需要你的帮助。 我有一个包含大量Jquery代码的模板。在我的模板上包含AngularJs后,我的幻灯片不时会中断。我的朋友建议我,我应该尝试添加noConflict();行。基于documentation about noConflict我应该创建一个变量,并将其附加到我的代码中,但我真的不知道如何。 这是我创建幻灯片放映的jquery代码。

// on document ready
(function($){
    "use strict";

    var globalDfd = $.Deferred();
    $(window).bind('load',function(){
        // after loading all the scripts
        globalDfd.resolve();
    });

    // camera slideshow
        (function(){
            var cs = $('.camera_wrap');
            if(cs.length){
                cs.camera({
                    height: '41%',
                    navigation: true,
                    pagination: true,
                    playPause:false,
                    thumbnails: false,
                    time: 4000,
                    transPeriod : 1000,
                    navigationHover: false,
                    onLoaded: function() {
                        var image = $('.camera_wrap .camera_src > [data-src]'),
                            len = image.length,
                            bullet = $('.camera_wrap .camera_pag_ul > li');
                        if(bullet.find('.custom_thumb').length) return;
                        for(var i = 0; i < len; i++){
                            bullet.eq(i).append('<div class="custom_thumb tr_all_hover"><img src="' + image.eq(i).data('custom-thumb') + '" alt=""></div>');
                        }
                        bullet.on("mouseenter mouseleave",function(){
                            $(this).children('.custom_thumb').toggleClass("active");
                        });
                    }
                });
                cs.find('.camera_prev').append('<i class="fa fa-angle-left"></i>');
                cs.find('.camera_next').append('<i class="fa fa-angle-right"></i>');
            }
        })();

})(jQuery);

请举例说明,如果添加noConflict函数,该代码应如何显示。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

JQuery使用$,这样的其他一些框架。 为了确保没有冲突,您可以简单地用jQuery替换$

例如:

$(&#39; .camera_wrap&#39;) 变 jQuery的(&#39; .camera_wrap&#39)

答案 1 :(得分:1)

提供的代码将能够与noConflict一起运行良好。 因为它已经包含在jquery-&gt; $ closure

答案 2 :(得分:1)

我假设您已经完成了使用noConflict()的需要。 以下是您的代码的样子

//Define you alias
var your_alias = $.noConflict(true);
(function() {

 var cs = your_alias('.camera_wrap');
 if (cs.length) {
  cs.camera({
   height: '41%',
   navigation: true,
   pagination: true,
   playPause: false,
   thumbnails: false,
   time: 4000,
   transPeriod: 1000,
   navigationHover: false,
   onLoaded: function() {
    var image = your_alias('.camera_wrap .camera_src > [data-src]'),
     len = image.length,
     bullet = your_alias('.camera_wrap .camera_pag_ul > li');
    if (bullet.find('.custom_thumb').length) return;
    for (var i = 0; i < len; i++) {
     bullet.eq(i).append('<div class="custom_thumb tr_all_hover"><img src="' + image.eq(i).data('custom-thumb') + '" alt=""></div>');
    }
    bullet.on("mouseenter mouseleave", function() {
     your_alias(this).children('.custom_thumb').toggleClass("active");
    });
   }
  });
  cs.find('.camera_prev').append('<i class="fa fa-angle-left"></i>');
  cs.find('.camera_next').append('<i class="fa fa-angle-right"></i>');
 }
})();

如果您仍然遇到任何问题,也请告诉我。