0

我在一个网站上工作,我有一堆脚本彼此相邻。

我实现了另一个砌体脚本,它本身可以正常工作,但是当我将它们与另一个脚本一起放置时,我在 Chrome 控制台中收到错误消息:

Uncaught SyntaxError: Unexpected end of input masonry.js:16 
Uncaught TypeError: Object [object Object] has no method 'colladjust' 

id 或类变量可能存在某种冲突。或覆盖对象。

这是砌体脚本:

<script type="text/javascript">
jQuery(document).ready(function($) {
var CollManag = (function() {
    var $ctCollContainer = $('#ct-coll-container'),
    collCnt = 1,
    init = function() {
        changeColCnt();
        initEvents();
        initPlugins();
    },
    changeColCnt = function() {
        var w_w = $(window).width();
        if( w_w <= 640 ) n = 1;
        else if( w_w <= 1023 ) n = 2;
        else n = 3;
    },
    initEvents = function() {
        $(window).on( 'smartresize.CollManag', function( event ) {
            changeColCnt();
        });
    },
    initPlugins = function() {
        $ctCollContainer.imagesLoaded( function(){
            $ctCollContainer.masonry({
                itemSelector : '.ct-coll-item',
                columnWidth : function( containerWidth ) {
                    return containerWidth / n;
                },
                isAnimated : true,
                animationOptions: {
                    duration: 400
                }
            });
        });
        $ctCollContainer.colladjust();
        $ctCollContainer.find('div.ct-coll-item-multi').collslider();
    };
    return { init: init };
})();
CollManag.init();
}); 
</script>

这是冲突的脚本之一:

jQuery(document).ready(function($) {

    $(document).ready(function() {
      $('.sidebarlink').click(function(){
        if ($("#content").hasClass("sidebar-active")){
          $("#content").toggleClass("sidebar-active");
          $("#content").toggleClass("sidebar-active-1600");
          $(".sidebarbox").toggleClass("sidebar-active");
          $(".sidebarlink").css( "opacity", 1 );

        }else{
          $("#content").toggleClass("sidebar-active");
          $("#content").toggleClass("sidebar-active-1600");
          $(".sidebarbox").toggleClass("sidebar-active");
          $(".commentbox").removeClass("commentbox-active");
          $("#content").removeClass("commentbox-active");
          $("#content").removeClass("commentbox-active-1600");
          $(".sidebarlink").css( "opacity", 0 );
          $(".commentbox-link").css( "opacity", 1 );
        }return false;
      });
    });
    });
4

1 回答 1

0

通过定义它正在使用的变量,您的非砌体脚本毒害了 masonry.js。通过从非砌体脚本中删除单个语句直到它开始工作来找出它是哪一个。

解决方案可能就像将 id 和 class 变量名称更改为其他名称一样简单。

于 2014-02-18T02:41:57.157 回答