javascript - 完全坚持将 JQuery 加载到 WordPress 站点

标签 javascript php jquery wordpress

这似乎是一个简单的错误,但我一直坚持下去。

我正在使用我发现的脚本运行 WordPress 安装,该脚本隐藏了基于滚动的 header 。在我开始使用单独的文件将其加载到 WordPress 主题之前,它们的脚本在页面本身包含在标签中时完美运行。

wp_enqueue_script( 'greycanary-effects', get_template_directory_uri() . '/js/effects.js', array(), '20120206', true );

还有脚本...

( function() {
    var didScroll;
    var lastScrollTop = 0;
    var delta = 5;
    var navbarHeight = $('.main-navigation').outerHeight();

    jQuery(window).scroll(function(event){
        didScroll = true;
    });

    setInterval(function() {
        if (didScroll) {
            hasScrolled();
            didScroll = false;
        }
    }, 250);

    function hasScrolled() {
        var st = $(this).scrollTop();

        // Make sure they scroll more than delta
        if(Math.abs(lastScrollTop - st) <= delta)
            return;

        // If they scrolled down and are past the navbar, add class .nav-up.
        // This is necessary so you never see what is "behind" the navbar.
        if (st > lastScrollTop && st > navbarHeight){
            // Scroll Down
            $('.main-navigation').removeClass('nav-down').addClass('nav-up');
        } else {
            // Scroll Up
            if(st + $(window).height() < $(document).height()) {
                $('.main-navigation').removeClass('nav-up').addClass('nav-down');
            }
        }

        lastScrollTop = st;
    };
});

最佳答案

您需要将所有 $ 引用替换为“jQuery”;或者您需要创建一个名为“$”的变量:

例如把这个放在你的函数的顶部(){

(function(){
    $ = jQuery;
    ....

( function() {
    var didScroll;
    var lastScrollTop = 0;
    var delta = 5;
    var navbarHeight = jQuery('.main-navigation').outerHeight();

    jQuery(window).scroll(function(event){
        didScroll = true;
    });

    setInterval(function() {
        if (didScroll) {
            hasScrolled();
            didScroll = false;
        }
    }, 250);

    function hasScrolled() {
        var st = jQuery(this).scrollTop();

        // Make sure they scroll more than delta
        if(Math.abs(lastScrollTop - st) <= delta)
            return;

        // If they scrolled down and are past the navbar, add class .nav-up.
        // This is necessary so you never see what is "behind" the navbar.
        if (st > lastScrollTop && st > navbarHeight){
            // Scroll Down
            jQuery('.main-navigation').removeClass('nav-down').addClass('nav-up');
        } else {
            // Scroll Up
            if(st + jQuery(window).height() < jQuery(document).height()) {
                jQuery('.main-navigation').removeClass('nav-up').addClass('nav-down');
            }
        }

        lastScrollTop = st;
    };
});

关于javascript - 完全坚持将 JQuery 加载到 WordPress 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678489/

相关文章:

大型项目(社交媒体)的 Javascript/jQuery 优化

c# - 如何识别和存储文本框的更改详细信息并在 asp.net 中的 java 脚本中调用它

php - 如何创建更快的 jQuery 自动完成

javascript - 使用 JavaScript 的 Sticky Nav 问题

javascript - 动态添加 通过单击“添加更多”选择国家和州

javascript - 将类添加到包含 Dog 1 及其之间的行的表行

javascript - 如何更改 select2 css

javascript - 使只读字段不可点击

php - 用户单击时如何使用弹出 Pane 创建图像?

php - 推送通知Jquery移动cordova应用程序android,重复的id