2013-05-27 123 views
0

我已經通過線上大部分解決衝突的代碼[jquery.noConflict()]等。並嘗試使用joomla插件:jquery容易嘗試並解決它。這對我來說沒有任何作用。這裏是問題:joomla和jQuery的衝突

joomla網站的頂部菜單使用jQuery來顯示內容,而側邊欄只是joomla對菜單元素的定位。

與jquery.noConflict(): 頂部菜單將工作。側邊欄菜單將不可點擊。 [只有右擊並在新標籤中打開,然後它會顯示內容]

如果我刪除了所有的jQuery一起代碼: 頂部菜單,當然,無法正常工作。側邊欄菜單將是可點擊的。

因此,它可以是頂層菜單,也可以是專門用於工作的側邊欄。任何建議?

我的jQuery代碼如下,以防萬一我做錯了什麼。 > < - 目前使用jquery easy插件:

<script type="text/javascript"> 
    //<![CDATA[ 
    jQuery(window).load(function(){ 
     jQuery('#link1').click(function(e){  
      jQuery('#exposeMask, #csmf1').fadeIn('slow'); 
     }); 
     jQuery('#link2').click(function(e){  
      jQuery('#exposeMask, #csmf2').fadeIn('slow'); 
     }); 
     jQuery('#link3').click(function(e){  
      jQuery('#exposeMask, #csmf3').fadeIn('slow'); 
     }); 
     jQuery('#link4').click(function(e){  
      jQuery('#exposeMask, #csmf4').fadeIn('slow'); 
     }); 

     jQuery('#closebtn1').click(function(e){  
      jQuery('#exposeMask, #csmf1').fadeOut('slow'); 
     }); 
     jQuery('#closebtn2').click(function(e){  
      jQuery('#exposeMask, #csmf2').fadeOut('slow'); 
     }); 
     jQuery('#closebtn3').click(function(e){  
      jQuery('#exposeMask, #csmf3').fadeOut('slow'); 
     }); 
     jQuery('#closebtn4').click(function(e){  
      jQuery('#exposeMask, #csmf4').fadeOut('slow'); 
     }); 
     checkTab(); 
    });//]]> 
     function switchContent(obj) { 
      obj = (!obj) ? 'tab1' : obj; 

      var contentDivs = document.getElementsByTagName('div'); 
      for (i=0; i<contentDivs.length; i++) { 
       if (contentDivs[i].id && contentDivs[i].id.indexOf('tab') !== -1) { 
        contentDivs[i].className = 'hide';   
       } 
      } 
      document.getElementById(obj).className = ''; 
      jQuery(".current").removeClass("active"); 
      jQuery(".current").removeClass("current"); 
     } 
     function checkTab() { 
      jQuery('a').each(function() { 
       jQuery(this).click(function() { 
        tab = jQuery(this).attr('href').split('#'); 
        switchContent(tab[1]); 
        jQuery(this).parent('li').addClass('active'); 
        jQuery(this).parent('li').addClass('current'); 
        return false; 
       }); 
      }); 
     } 
</script> 

在此先感謝!

+0

你確定你只導入了1個jquery文件嗎? – Lodder

+0

您可以在瀏覽器中檢查控制檯(F12適用於大多數瀏覽器)並查看它是否記錄了任何Javascript錯誤? – Bakual

+0

@Lodder yup,只有1個jquery文件。 – na9090

回答

1

檢查checkTab()功能。 它適用於每個鏈接,並可能會干擾側邊欄中的其他鏈接。也許使這個函數不那麼通用,所以它只適用於頂層菜單中的鏈接。

+0

是的,我已經從「返回false」改爲「return true」哈哈,它以某種方式工作。謝謝! – na9090