为什么我的非常简单的jQuery不能工作?

时间:2019-02-08 作者:Rollor

我刚刚部署了一个新的Wordpress站点。一切看起来都很好,现在我正在设置jQuery:

子主题functions.php:

//enqueue scripts
function my_theme_enqueue_scripts() {
    wp_register_script( \'myjs\', get_stylesheet_directory_uri() . \'/my.js\', array(\'jquery\'),\'1.0.0\');
    wp_enqueue_script(\'myjs\');
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_scripts\' );
页面模板tpl-mypage.php:

<html>
    <head>
        <?php wp_head(); ?>   
    </head>
<body>
    <div id=”test-script”></div>
</body>
</html>
js文件my.js:

jQuery(document).ready(function( $ ){
    $("#test-script").html("Hello World");
})
这不起作用。我能看到我的。正在Chrome>Inspect>Network上加载js。

这里可能有什么问题?

3 个回复
SO网友:Mohsin Ghouri

代码似乎很好。请在页脚中加载脚本进行检查,并在中使用wp\\u页脚。php文件。

SO网友:makkabi

注册脚本时,将$in\\u footer参数设置为true:

    wp_register_script( \'myjs\', get_stylesheet_directory_uri() . \'/my.js\', array(\'jquery\'),\'1.0.0\', true);
并调用wp\\u footer(),如Mohsin所述:

    <html>
        <head>
            <?php wp_head(); ?>   
        </head>
    <body>
        <div id=”test-script”></div>
    <?php wp_footer(); ?>
    </body>
    </html>

SO网友:Deepal Samaraweera

这样尝试过。没有运气。需要更多帮助。它可以在本地工作,但不能在wordpress内部工作。

我的代码:myjquery.js

   $(document).ready(function($) {
$(“.项目类型”)。单击(function(){$(\'.item-type\')。removeClass(\'item-type-active\');$(this)。addClass(\'item-type-active\');});

函数rangeCalc(i){var totalPrice=0;var tariff=[{开始:1,价格:1000},];var tariffItem2=[{开始:1,价格:85},{开始:3,价格:80},{开始:6,价格:75},{开始:11,价格:70},{开始:21,价格:65},{开始:61,价格:60}];

关税forEach(函数(num,item){if(关税[项目]。begin<;=i){totalPrice=关税[项目]。价格;$(\'calc total price\')。文本(i*totalPrice);$(\'calc price\')。文本(totalPrice);};

});};

$(“.计算范围”)。on(\'input\',function(){$(\'.calc count\')。text(this.value);rangeCalc(this.value);});

});

loaded like this way. and shows it in page source.

函数load\\u js\\u assets(){if(is\\u page(292)){wp\\u enqueue\\u script(\'myjquery\',\'/js/myjquery.js\',array(\'jquery\'),\'\',true);

} 
}

add\\u action(\'wp\\u enqueue\\u scripts\',\'load\\u js\\u assets\');