脚本仅适用于主页

时间:2015-02-13 16:19:16

标签: javascript joomla conflict

我在滚动后添加类有问题,这对我来说真的很奇怪,这就是原因:

我在多个项目中使用过这个脚本,之前从未遇到过这个问题。当我向下滚动主页时​​,脚本完美地工作,类“Fix”被添加到类“navigacija”,社交图标,菜单和语言被固定在页面顶部。但在其他页面上并非如此。滚动145px后,类“修复”未添加到“navigacija”类。更有趣的是,我在this page上故意插入非常大的图像,直到页面加载该图像,我的脚本工作(尝试在加载图像之前向下滚动)。页面完全加载后,脚本不再起作用。我在Joomla工作,我制作了自己的模板,我没有安装任何模块,组件或插件。只有Joomla的标准js文件和我之前用过这个脚本的脚本没有任何问题。

以下是我正在处理的网站:http://investfarm.moderanweb.rs/

这是脚本:

$(function() {
    var navigacija = $(".navigacija");
    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();

        if (scroll >= 145) {
            navigacija.removeClass('navigacija').addClass("Fix");
        } else {
            navigacija.removeClass("Fix").addClass('navigacija');
        }
    });
});

请提前帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

对于初学者,请开始清理控制台中显示的错误。

您有多个脚本标记指向HTML页面而不是脚本。

<script type="text/javascript" src="/templates/investfarmimpexmd/js/jquery-2.1.1.js"></script>
<script type="text/javascript" src="/templates/investfarmimpexmd/js/wow.min.js"></script>
<script src="/js/wow.min.js"></script>

我不知道你期望加载什么,但它没有加载脚本并导致错误。

也许这些标记为type="text/template",因此浏览器不会尝试执行它们,您可以将它们用作模板吗?


而且,你在这行内联Javascript上有一个错误,表明jQuery没有正确加载,所以你必须找出原因:

 jQuery(window).on('load',  function() {
     new JCaption('img.caption');
 });

并且,您在同一页面中加载了多个不同版本的jQuery,但没有管理这些不同版本的使用方式。你不能只加载一个版本的jQuery,发出jQuery.noConflict(),然后加载另一个版本的jQuery。第一个是在那一点上什么都不做,所以如果你需要它什么的话,那就不行了。

答案 1 :(得分:0)

如果您正在使用jQueryNoConflict,请尝试将$更改为jQuery,为什么它在主页上工作,我想因为jQuery库在mootools库之前和之后加载了两次,所以请尝试使用,你应该为ToolTip和其他东西做同样的事情:

jQuery(function() {
    var navigacija = $(".navigacija");
    jQuery(window).scroll(function() {    
        var scroll = jQuery(window).scrollTop();

        if (scroll >= 145) {
            navigacija.removeClass('navigacija').addClass("Fix");
        } else {
            navigacija.removeClass("Fix").addClass('navigacija');
        }
    });
});