无法使用入队调用Java脚本

时间:2019-01-16 作者:squidg

我正在使用一个子主题,并试图从/child-theme/JS/custom调用自定义JS。js公司

在我的函数文件中,我有:

function myprefix_enqueue_scripts() {
    wp_enqueue_script( \'my-script\', get_stylesheet_directory_uri() . \'/js/custom.js\', array(), true );
}
add_action( \'wp_enqueue_scripts\', \'myprefix_enqueue_scripts\' );
在Javascript中,我有:

$( document ).ready(function() {
    alert( "Here\'s your javascript!" );
});

var textID = document.getElementById("logo.no-image"); // go and take the Text from the ID
var text = textID.innerHTML; // Take the text from the
var toChange = text.split(""); // Separrate each letter into array
var newText = ""; // buffer text
var aClassName = ["red", "green", "blue"]; // class name that you want
var colorNumber = 0; // counter to loop into your class

for (var i=0, ii=toChange.length; i<ii; i++){
        if(colorNumber == aClassName.length){ // if you reach the end of your class array
        colorNumber = 0; //Set it back to 0
    }
    // Add between each letter the span with your class
    newText += "<span class="+aClassName[colorNumber]+">"+toChange[i]+"<\\/span>";
    colorNumber++
}
// Output your text into the web
textID.innerHTML = newText;
我添加了警报以测试脚本是否正在加载

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

在WP中,jQuery默认在兼容模式下工作。这意味着jQuery的典型$快捷方式不起作用,因此它与任何其他也使用美元符号的JavaScript库(如MooTools或Prototype)没有冲突。

所以你应该使用jQuery 而不是$ 在JS文件中。

当然,您可以在传入的匿名函数中封装代码jQuery 要映射到$.

(function($) {

    // $ Works here!
    // console.log($);

})( jQuery );
在将脚本排队时,还必须将jquery添加为依赖项:

function myprefix_enqueue_scripts() {
    wp_enqueue_script( \'my-script\', get_stylesheet_directory_uri() . \'/js/custom.js\', array(\'jquery\'), true );
}
add_action( \'wp_enqueue_scripts\', \'myprefix_enqueue_scripts\' );
另外,我假设您的文件已正确排队,并且确实在代码中。