在你的脚本和你如何在你的主题中排队时,有几件事需要考虑。
Script names must be unique when enqueued
考虑一下,如果您有一个名为“script”的脚本和另一个名为“script”的脚本,wordpress将只选择一个。可能是“脚本”已被执行,您可能需要重命名它。
function mytheme_scripts() {
wp_enqueue_script( \'my_theme_script\', get_template_directory_uri() . \'/assets/js/script.js\', true );
}
add_action ( \'wp_enqueue_scripts\', \'mytheme_scripts\');
jQuery runs in no-conflict mode with wordpress
这意味着$尚未定义为jQuery。用jQuery替换所有$,或者在函数内部定义jQuery。例如,对于您链接的代码笔片段,我将执行以下操作:
(function( $ ) {
\'use strict\';
$(function() {
$(\'.tile\')
// tile mouse actions
.on(\'mouseover\', function(){
$(this).children(\'.photo\').css({\'transform\': \'scale(\'+ $(this).attr(\'data-scale\') +\')\'});
})
.on(\'mouseout\', function(){
$(this).children(\'.photo\').css({\'transform\': \'scale(1)\'});
})
.on(\'mousemove\', function(e){
$(this).children(\'.photo\').css({\'transform-origin\': ((e.pageX - $(this).offset().left) / $(this).width()) * 100 + \'% \' + ((e.pageY - $(this).offset().top) / $(this).height()) * 100 +\'%\'});
})
// tiles set up
.each(function(){
$(this)
// add a photo container
.append(\'<div class="photo"></div>\')
// some text just to show zoom level on current item in this example
.append(\'<div class="txt"><div class="x">\'+ $(this).attr(\'data-scale\') +\'x</div>ZOOM ON<br>HOVER</div>\')
// set up a background image for each tile based on data-image attribute
.children(\'.photo\').css({\'background-image\': \'url(\'+ $(this).attr(\'data-image\') +\')\'});
})
}); //End Function
})( jQuery );
Troubleshooting
使用浏览器检查器窗口查看是否存在控制台错误。您还可以使用此窗口查看源是什么。因此,您可以查看源代码中的JS文件是否正确qued。请注意,对于JS和CSS文件,它们通常由浏览器缓存,有时需要硬刷新才能看到更改!
希望这能帮助你解决问题!