【发布时间】: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