首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery在WordPress中的问题。jQuery加载但不能工作

jQuery在WordPress中的问题。jQuery加载但不能工作
EN

Stack Overflow用户
提问于 2020-04-21 16:42:58
回答 1查看 89关注 0票数 1

首先,如果我的英语不太清楚,我很抱歉。我会尽量简明扼要。

正如我在标题中所说的,jQuery文件是加载的,但是它不能工作,我的意思是,它出现在头部(我已经尝试过将它放在页脚中),但是$函数没有被识别。几天来,我一直在调查这个问题,但是我没有成功。

我的functions.php头:

代码语言:javascript
复制
<?php
//Load jQuery
function loadjQuery() {
    wp_deregister_script('jquery');
    wp_register_script('jquery', get_template_directory_uri().'/js/jquery.min.js', array(), null);
    wp_enqueue_script('jquery');
}

//Load js
function add_js(){
    wp_register_script('jquery-migrate', get_template_directory_uri().'/js/jquery-migrate.min.js', array("jquery"), null);
    wp_enqueue_script('jquery-migrate');
    wp_register_script('jquery-waypoints', get_template_directory_uri().'/js/jquery.waypoints.min.js', array("jquery"));
    wp_enqueue_script('jquery-waypoints');  
    wp_register_script('jquery-counterup', get_template_directory_uri().'/js/jquery.counterup.min.js', array("jquery"));
    wp_enqueue_script('jquery-counterup');
    wp_register_script('bootstrap', get_template_directory_uri().'/js/bootstrap/js/bootstrap.min.js', array('jquery'));
    wp_enqueue_script('bootstrap');
    wp_register_script('popper', get_template_directory_uri()."/js/popper.min.js"
, array('jquery'));
    wp_enqueue_script('popper');
    wp_register_script('easing', get_template_directory_uri()."/js/easing.min.js", array('jquery'));
    wp_enqueue_script('easing');    
    wp_register_script('typed', get_template_directory_uri().'/js/typed/typed.min.js', array('jquery'));
    wp_enqueue_script('typed');
    wp_register_script('main', get_template_directory_uri().'/js/main.js', array('jquery'), null);
    wp_enqueue_script('main');

}
add_action("wp_enqueue_scripts", "load_stylesheets");
add_action('wp_enqueue_scripts', 'loadjQuery',999);
add_action("wp_enqueue_scripts", "add_js", 999);
add_action('phpmailer_init','send_smtp_email');
?>

我的main.js文件:

代码语言:javascript
复制
jQuery(function($) {

    $('#preloader').addClass('preloader');
    $(window).on("load", function() {
        $(document).ready(function(){   
            $('.preloader').removeClass('preloader');
        });
    });
    $(document).ready(function() {
        "use strict";
        var nav = $('nav');
        var navHeight = nav.outerHeight();
            $('.navbar-toggler').on('click', function() {
            if( ! $('#mainNav').hasClass('navbar-reduce')) {
            $('#mainNav').addClass('navbar-reduce');
            }
        })


    // Back to top button
    $(window).scroll(function() {
        if ($(this).scrollTop() > 100) {
        $('.back-to-top').fadeIn('slow');
        } else {
        $('.back-to-top').fadeOut('slow');
        }
    });
    $('.back-to-top').click(function(){
        $('html, body').animate({scrollTop : 0},1500, 'easeInOutExpo');
        return false;
    });

    /*--/ Star ScrollTop /--*/
    $('.scrolltop-mf').on("click", function () {
        $('html, body').animate({
            scrollTop: 0
        }, 1000);
    });


        /*--/ Star Scrolling nav /--*/
        $('a.js-scroll[href*="#"]:not([href="#"])').on("click", function () {
            if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
                var target = $(this.hash);
                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
                if (target.length) {
                    $('html, body').animate({
                        scrollTop: (target.offset().top - navHeight + 5)
                    }, 1000, "easeInOutExpo");
                    return false;
                }
            }
        });

        // Closes responsive menu when a scroll trigger link is clicked
        $('.js-scroll').on("click", function () {
            $('.navbar-collapse').collapse('hide');
        });

        // Activate scrollspy to add active class to navbar items on scroll
        $('body').scrollspy({
            target: '#mainNav',
            offset: navHeight
        });
        /*--/ End Scrolling nav /--*/

        /*--/ Navbar Menu Reduce /--*/
        $(window).trigger('scroll');
        $(window).on('scroll', function () {
            var pixels = 50; 
            var top = 1200;
            if ($(window).scrollTop() > pixels) {
                $('.navbar-expand-md').addClass('navbar-reduce');
                $('.navbar-expand-md').removeClass('navbar-trans');
            } else {
                $('.navbar-expand-md').addClass('navbar-trans');
                $('.navbar-expand-md').removeClass('navbar-reduce');
            }
            if ($(window).scrollTop() > top) {
                $('.scrolltop-mf').fadeIn(1000, "easeInOutExpo");
            } else {
                $('.scrolltop-mf').fadeOut(1000, "easeInOutExpo");
            }
        });

        /*--/ Star Typed /--*/
        if ($('.text-slider').length == 1) {
        var typed_strings = $('.text-slider-items').text();
            var typed = new Typed('.text-slider', {
                strings: typed_strings.split(','),
                typeSpeed: 80,
                loop: true,
                backDelay: 1100,
                backSpeed: 50
            });
        }

});
});

我还尝试用$修改所有的‘jQuery’元素,并加载jquery的cdn,但是它也没有工作。

,提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-21 17:52:32

使用jQuery的正确方法是在自动执行匿名函数中,如下所示:

代码语言:javascript
复制
(function($) {

  $('#preloader').addClass('preloader');
  ...

})(jQuery);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61348639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档