【问题标题】:joomla and jquery conflictjoomla 和 jquery 冲突
【发布时间】:2026-01-31 16:55:01
【问题描述】:

我已经通过大多数在线解决冲突的代码 [jquery.noConflict()] 等。并尝试使用 joomla 插件:jquery 易于尝试并解决它。这些都不适合我。问题来了:

joomla 网站的顶部菜单使用 jquery 来显示内容,而侧边栏只是 joomla 对菜单元素的定位。

使用 jquery.noConflict(): 顶部菜单会起作用。侧边栏菜单将不可点击。 [只有右键在新标签页打开才会显示内容]

如果我将 jQuery 代码一起删除: 当然,顶部菜单将无法正常工作。然后侧边栏菜单就可以点击了。

因此,只有顶部菜单或侧边栏才能使用。有什么建议吗?

我的 jQuery 代码如下,以防我做错了什么。 >

<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>   

提前致谢!

【问题讨论】:

  • 您确定只导入 1 个 jquery 文件吗?
  • 您能否检查浏览器中的控制台(大多数浏览器为 F12),看看它是否在那里记录任何 Javascript 错误?
  • @Lodder 是的,只有 1 个 jquery 文件。
  • @Bakual 是的,没有 javascript 错误。即使点击菜单也不会注册点击事件。

标签: joomla2.5 conflict jquery


【解决方案1】:

检查checkTab() 函数。 它适用于每个链接,并且可能会干扰侧边栏中的其他链接。也许让这个函数不那么通用,所以它只适用于顶部菜单中的链接。

【讨论】:

  • 是的,我已经从“return false”更改为“return true”,哈哈,不知何故它起作用了。谢谢!
最近更新 更多