我正在开发一个 wordpress 网站,我需要触发用户滚动以触发不同的事件并隐藏/显示一些图像,因此 Waypoints.js 非常适合它。
但是我尝试了不同的尝试,但没有结果。我将它作为函数添加到 functions.php 文件中,如下所示:
function waypoints_method() {
wp_deregister_script('jquery');
wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js", false, null);
wp_enqueue_script('jquery');
wp_enqueue_script('waypoints', get_stylesheet_directory_uri() . '/vendor/waypoints/lib/jquery.waypoints.min.js');
}
add_action( 'wp_enqueue_scripts', 'waypoints_method' );
然后在javascript中:
jQuery(document).ready(function($) {
$('.waypoint').waypoint(function() {
alert('You have scrolled to my waypoint.');
});
}
我唯一得到的是调整浏览器大小时的 console.log。那么,我需要做什么才能让它发挥作用?或者,我可以使用 Waypoints.js 的任何替代方法吗?
谢谢!
Waypoints 使用
$
访问 jQuery,但是对于 WordPress,您需要将 jQuery 称为 jQuery
.
我发现我必须使用 Waypoints 的无框架版本 才能让它与 WordPress 一起工作。
今天我在同一个问题上卡了几个小时。我在我的项目中加入了许多脚本,并且也以相同的方式对waypoints.
出于某种原因,脚本根本没有查询。我尝试了很多版本和方法,几个小时后我找到了原因。这很有趣:)
当您查询waypoints脚本时,您必须使用与'waypoints'不同的唯一名称。 Wordpress 从第一个参数创建 id,这就是重点。
例子:
wp_enqueue_script( 'waypoints', get_stylesheet_directory_uri() . '/scripts/vendor/jquery.waypoints.min.js', array ('jquery'), true );
- 这不工作
wp_enqueue_script( 'waypoints-script', get_stylesheet_directory_uri() . '/scripts/vendor/jquery.waypoints.min.js', array ('jquery'), true );
-这是有效的