Javascript not working?

时间:2015-08-10 作者:OtherClare

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测试床上运行良好。

我假设问题与此代码无关,但我认为这会有所帮助。请,如果有人很熟悉或者听说过类似的情况发生,请提供一些建议,感觉我现在已经死定了。谢谢

1 个回复
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

结束