【问题标题】:Jquery scripts not working in Wordpress, tried multiple enqueue methodsJquery 脚本在 Wordpress 中不起作用,尝试了多种入队方法
【发布时间】:2023-03-31 09:33:01
【问题描述】:

我搜索过类似的问题,但还没有找到答案。

在使用 Genesis 框架的 Wordpress dev site 上,我尝试使用以下 jquery 脚本:smoothscroll.js 和 Matt Verone 的 Dynamic to top(WP 插件版本和手动版本)。两者都不起作用。我已经在 WP 和非 WP 网站上成功使用了这两种方法。

我通过 functions.php 中的以下方法将 smoothscroll.js 和动态到顶部脚本(手动使用时)、easing.js 和 jquery.ui.totop.min.js 排入队列。

function tm_scripts()
{       
    wp_register_script( 'easing', get_stylesheet_directory_uri() . '/lib/js/easing.js', array( 'jquery' ), null, true );

    wp_register_script( 'smoothscroll', get_stylesheet_directory_uri() . '/lib/js/smoothscroll.js', array( 'jquery' ), null, true );

    wp_register_script( 'jquery.ui.totop.min', get_stylesheet_directory_uri() . '/lib/js/jquery.ui.totop.min.js', array( 'jquery' ), null, true );

    wp_register_script( 'main', get_stylesheet_directory_uri() . '/lib/js/main.js', array( 'jquery' ), null, true );

    wp_enqueue_script( 'easing' );
    wp_enqueue_script( 'smoothscroll' );
    wp_enqueue_script( 'jquery.ui.totop.min' );
    wp_enqueue_script( 'main' );
}
add_action( 'wp_enqueue_scripts', 'tm_scripts' );

当我查看代码时,它们会出现在页脚中。

然后我尝试让 jquery 通过 wp 和 CSS Tricks 中的以下 jquery enqueue 方法加载:

 if (!is_admin()) add_action("wp_enqueue_scripts", "tm_jquery_enqueue", 11);
function tm_jquery_enqueue() {
   wp_deregister_script('jquery');
   wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", false, null);
   wp_enqueue_script('jquery');  
}

运气不好。我使用的唯一其他插件是 Contact Form 7 和 Akismet。我觉得某处有冲突,只是不确定是什么。任何帮助将不胜感激。

【问题讨论】:

  • 使用样板文件是解决 JS 冲突和清除请求的好方法,你应该尝试一下。但是,不错的网站。
  • 您是否遇到任何控制台错误?
  • 谢谢@jeromeM。是的,我在我的非 wp 网站上使用样板。应该有这个。
  • 我在使用动态到顶部插件时没有收到任何错误。但是,当我将所有脚本(smoothscroll.js、easing.js、...totop.min.js 和 main.js)排入队列时,我在 main.js 上遇到错误,其中包含 $(document).ready(function() { $().UItoTop({ easingType: 'easeOutQuart' }); }); 错误显示“ $ 不是函数。”
  • $ 只是jQuery 的别名,通过在将其余脚本排入队列之前调用$.noConflict(),您可以将$ 的控制权返回给jQuery。见api.jquery.com/jQuery.noConflict

标签: javascript jquery wordpress


【解决方案1】:

CSS 技巧代码也不适合我,但这是

add_action( 'init', 'jquery_register' );
function jquery_register() {
if ( !is_admin() ) {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', ('http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js' ), false, null, true );
wp_enqueue_script( 'jquery' );
}
}

或任何其他 jquery 版本...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多