此刻我正在JavaScript中玩JavaScript,因为这是我们工作的地方。 (我是实习生)。
我有一个可在页脚的script标记中使用的JavaScript代码列表,但是当我制作一个JS文件并将其包含在functions.php文件中时,它将无法运行。
我已经用警报和console.log进行了测试,文件正在按预期方式运行,这只是我之前的代码无法运行。
我的代码是这样的:
const nav = document.querySelector('#main');
let topOfNav = nav.offsetTop;
function fixNav() {
if (window.scrollY >= topOfNav) {
document.body.style.paddingTop = nav.offsetHeight + 'px';
document.body.classList.add('fixed-nav');
} else {
document.body.classList.remove('fixed-nav');
document.body.style.paddingTop = 0;
}
}
window.addEventListener('scroll', fixNav);
const slider = document.querySelector('.items');
let isDown = false;
let startX;
let scrollLeft;
slider.addEventListener('mousedown', (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
});
slider.addEventListener('mouseleave', () => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mouseup', () => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mousemove', (e) => {
if (!isDown) return; // stop the fn from running
e.preventDefault();
const x = e.pageX - slider.offsetLeft;
const walk = (x - startX) * 3;
slider.scrollLeft = scrollLeft - walk;
});
functions.php中的代码是这样的:
`wp_enqueue_script('custom', get_template_directory_uri() . '/js/custom.js')`;
该JS文件正在加载并运行,只是代码仅在页脚中的脚本标签中起作用,而在自定义文件中不起作用。
任何可以指导我正确方向的人。不是答案,而是一些提示,以便我可以尝试自己学习:)
非常感谢。
答案 0 :(得分:0)
您可以做到
<?php
// wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
wp_register_script('custom_script', get_template_directory_uri() . '/js/custom.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('custom_script');
?>
在其页脚中紧接</body>
标记上方调用 wp_footer(); 函数。
为您
<?php
if (function_exists('load_scripts')) {
function load_scripts() {
wp_register_script('custom_script', get_template_directory_uri() . '/js/custom.js', array('jquery'), '1.0.0', true);
wp_enqueue_script('custom_script');
}
}
add_action('init', 'load_scripts');