【发布时间】:2017-07-08 16:48:19
【问题描述】:
我的 wordpress 网站不会将脚本加载到我的页面中。我将以下函数放在functions.php中:
function nav_script () {
wp_enqueue_script( 'script', get_stylesheet_directory_uri() .'/js/script.js', array('jQuery'), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'nav_script');
scripts.js中包含的脚本如下:
$(document).ready(function() {
var stickyNavTop = $('.blog-nav').offset().top;
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.blog-nav').addClass('sticky');
}
else {
$('.blog-nav').removeClass('sticky');
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
当我查看页面的源代码时,我没有看到脚本,所以由于某种原因它没有被加载......我在头部有 wp_head 并且在正文结束标记之前有 wp_footer,所以我对可能发生的事情一无所知,有人可以帮忙吗?正如我在 JSFiddle 中尝试的那样,该函数在普通的 html 中工作......
正在编辑...伙计们,我通过“手动”将脚本添加到函数中来实现一些目标,如下所示:
function nav_script () {
?>
<script>
$(document).ready(function() {
var stickyNavTop = $('.blog-nav').offset().top;
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.blog-nav').addClass('sticky');
} else {
$('.blog-nav').removeClass('sticky');
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
</script>
<?php
}
add_action('wp_head', 'nav_script');
但我注意到两件事:
一:头部不插入<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> CDN不行;
二:只有当我重新加载网站时它才会起作用,这表明我存在一些插件冲突......
【问题讨论】:
-
查看源代码?还是检查 DOM?两种截然不同的东西!
-
我右键查看页面源代码,你可以在这里看到:jsfiddle.net/7undbb8L@NiettheDarkAbsol
-
“页面源”是在运行任何 JavaScript 之前从服务器接收到的。
-
但如果脚本存在于页面中,它也应该在页面源代码中,就在头部不?
-
如果它被其他东西动态加载,则不会。
标签: javascript php jquery html wordpress