2014-11-05 115 views
1

請幫忙誰能。該網站適用於typo3。由範·Hylckama Vlieg簡單的jQuery菜單,它能夠正常工作:對於菜單我使用腳本jquery菜單腳本衝突

jQuery.fn.initMenu = function() { 
    return this.each(function(){ 
     var theMenu = $(this).get(0); 
     $('.acitem', this).hide(); 
     $('li.expand > .acitem', this).show(); 
     $('li.expand > .acitem', this).prev().addClass('active'); 
     $('li a', this).click(
      function(e) { 
       e.stopImmediatePropagation(); 
       var theElement = $(this).next(); 
       var parent = this.parentNode.parentNode; 
       if($(parent).hasClass('noaccordion')) { 
        if(theElement[0] === undefined) { 
         window.location.href = this.href; 
        } 
        $(theElement).slideToggle('normal', function() { 
         if ($(this).is(':visible')) { 
          $(this).prev().addClass('active'); 
         } 
         else { 
          $(this).prev().removeClass('active'); 
         }  
        }); 
        return false; 
       } 
       else { 
        if(theElement.hasClass('acitem') && theElement.is(':visible')) { 
         if($(parent).hasClass('collapsible')) { 
          $('.acitem:visible', parent).first().slideUp('normal', 
          function() { 
           $(this).prev().removeClass('active'); 
          } 
         ); 
         return false; 
        } 
        return false; 
       } 
       if(theElement.hasClass('acitem') && !theElement.is(':visible')) {   
        $('.acitem:visible', parent).first().slideUp('normal', function() { 
         $(this).prev().removeClass('active'); 
        }); 
        theElement.slideDown('normal', function() { 
         $(this).prev().addClass('active'); 
        }); 
        return false; 
       } 
      } 
     } 
    ); 
}); 
}; 

$(document).ready(function() {$('.menu').initMenu();}); 

但是,當我連接插件jQuery的顏色框的圖像,可能的腳本開始抨擊和菜單停止工作,所有子菜單已擴展,我無法將其摺疊。

也許誰會提示解決衝突,在哪裏尋找原因?謝謝/

+0

引用jquery.noConflict() – SarathSprakash 2014-11-05 14:25:07

回答

1

問題很可能是,您的TYPO安裝在一個頁面中加載jQuery庫的2個實例。在這種情況下,noConflict不會幫助你,因爲這是爲了解決jQuery和其他使用$命名空間的JavaScript庫(如Prototype)之間的衝突。

當你加載jQuery兩次時發生了什麼,後者是否覆蓋了第一個庫,它的所有插件都已加載到該點。對於Javascript庫或衝突,TYPO3s沒有管理。如果兩個擴展都支持t3jquery,這是一個擴展,它試圖完成TYPO缺乏的地方,你可能很幸運。

如果他們不這樣做就意味着你對你自己非常想弄清楚:

1)擴展在加載jQuery的

2)什麼奧德

和3 )設置所有其他擴展不加載jQuery,從而覆蓋已經加載的jQuery實例。

+0

問題的確在於一次加載兩個庫。我設置了所有擴展,不加載jQuery並將其僅包含在模板中一次。它幫助!謝謝 – user3111774 2014-11-10 07:49:41