2天前,我的javascript位于页脚文件夹中,运行正常,直到它突然停止工作。我懒得用正确的方式排队,所以我正式这么做是为了看看它是否能解决问题,但事实并非如此。当我检查html时,javascript会加载到其中,但不会播放。然后我认为是脚本,然后测试运行了一个脚本,我知道它在tuts plus中运行得很好,再次,没有任何结果。
Here\'s their script, which of course I rearranged to match my folder layout.
<?php
function twentyfifteen_child_scripts() {
wp_enqueue_script( \'transition js\', get_stylesheet_directory_uri() . \'/js/transition.js\' );
}
add_action(\'wp_enqueue_scripts\',\'twentyfifteen_child_scripts\');
And within my transition.js folder there is...
alert("yo");
在chrome上检查控制台会弹出两个错误:
(1) 加载资源失败:服务器响应状态为404(未找到)
(2) 未捕获类型错误:$不是函数
Which is referring to this script.
<script type="text/javascript">
$(".menu-button").click(function () {
$(this).parents(".wrapper").toggleClass("show-menu");
});
</script>
该脚本在HTML测试床上运行良好。
我假设问题与此代码无关,但我认为这会有所帮助。请,如果有人很熟悉或者听说过类似的情况发生,请提供一些建议,感觉我现在已经死定了。谢谢
SO网友:TheGentleman
“加载资源失败”可能是一种误导,与您的问题无关。事实上,它在$
快捷方式表示您的js文件正在正确加载。
可能的问题是WordPress中的jQuery加载到"noConflict" mode. 因此$
默认情况下,快捷方式不起作用。尝试用以下内容替换脚本:
<script type="text/javascript">
jQuery(".menu-button").click(function () {
jQuery(this).parents(".wrapper").toggleClass("show-menu");
});
</script>
或者,如果你真的喜欢
$
快捷方式:
<script type="text/javascript">
(function($) {
$(".menu-button").click(function () {
$(this).parents(".wrapper").toggleClass("show-menu");
});
})(jQuery);
</script>
javascript中的逻辑也存在问题。生产线
$(this).parents(".wrapper").toggleClass("show-menu");
无法按预期工作。
jQuery.parents()
返回一组结果,同时
jQuery.toggleClass()
需要单个元素。如果您知道正上方的元素
show-menu
永远都是
wrapper
这是您希望实现的唯一元素,然后您可以简单地将该行替换为该行
$(this).parent(".wrapper").toggleClass("show-menu");
或者,如果
wrapper
可以是任意高度以上
show-menu
, 你需要这样的东西
<script type="text/javascript">
jQuery(".menu-button").click(function () {
jQuery(this).parents(".wrapper").each(function(){
jQuery(this).toggleClass("show-menu");
});
});
</script>
顺便说一句,您之所以出现“未找到”错误,是因为
transitions.js
此url不存在:
https://generation-co.co/wp-content/themes/twentyfifteenG-CHILD/js/transition.js