将脚本从子主题排队时,必须使用get_stylesheet_directory_uri
而不是get_template_directory_uri()
. 模板目录是父主题,样式表目录是由活动样式表使用的目录共享的目录。
在您的functions.php
文件,排队将是:
function avtheme_scripts() {
wp_enqueue_script( \'av-about-fade\', get_stylesheet_directory_uri() . \'/js/about-fade.js\', array( \'jquery\' ), \'1.0.0\', true );
}
add_action( \'wp_enqueue_scripts\', \'avtheme_scripts\' );
这将为您正确地将脚本排队并使其可用。现在看看控制台为实际jQuery给出的错误-它表示找不到变量
jquery
. WordPress正在寻找
jQuery
大写Q。
下面是如何将脚本组合在一起,这样就不必替换$
具有jQuery
编写脚本时。下面的代码块将放入about-fade.js
文件
(function( $ ) {
\'use strict\';
$( document ).ready( function() {
if( $( \'.fading-start1\' ).length > 0 ) {
setTimeout( function() {
$( \'.fading-start1\' ).addClass( \'fading-finish1\' );
}, 3000 );
}
} );
// Have never used beforeunload myself, so not sure how reliable it is.
$( window ).on( \'beforeunload\', function() {
$( \'.fading-start1\' ).removeClass( \'fading-finish1\' );
} );
} )( jQuery );
当我编写大量jQuery时,有一件事曾经困扰过我,那就是我会遇到控制台错误,因为jQuery会尝试在不存在的元素上执行。例如,如果我有和元素like
<div class="fading-start1">
在主页上,但在网站的其他地方,我会看到错误,告诉我它找不到`\'。很明显,因为它不在那里。
因此,我现在通常要做的是,在对元素运行jQuery之前,通过检查元素的“长度”来检查元素是否存在,如果它大于零,jQuery将尝试在其上运行一些东西。如果它的长度(使用该选择器的元素数量)小于0,则它不存在。(长度这个名字有点奇怪,但它就是这个名字。)
那一条额外的指令让我的理智大大减退了。:-)
Addendum:
要在CSS中使用不透明度,只需将其添加到过渡:
.fading-start1 {
background-color: #fff!important;
opacity: 0.65;
transition: background-color 3s linear, opacity 3s linear!important;
-moz-transition: background-color 3s linear, opacity 3s linear!important;
-o-transition: background-color 3s linear, opacity 3s linear!important;
-webkit-transition: background-color 3s linear, opacity 3s linear!important;
}