我试图在wp-admin中加载并执行一系列脚本文件,更具体地说是在post edits屏幕上。目前,我能够成功加载文件,但实际上没有任何工作/执行。也没有控制台错误。
我正在按照以下方式在function.php中加载脚本:
// Admin scripts
function my_admin_scripts($hook){
// Only load on edit screens
if( $hook != 'edit.php' && $hook != 'post.php' && $hook != 'post-new.php' )
return;
wp_register_script('flickity', get_template_directory_uri() .'/js/vendor/min/flickity.pkgd-min.js', false, '2.1.0', false);
wp_register_script('single', get_template_directory_uri() .'/js/min/single-min.js', false, '1.0', false);
wp_enqueue_script('flickity');
wp_enqueue_script('single');
}
add_action('admin_enqueue_scripts','my_admin_scripts');
在控制台中,我看到两个脚本都已加载,因为两个文件都包含console.log()函数:
loaded-flickity
loaded-single
但是,这些脚本的实际功能不起作用,并且如上所述,没有控制台错误可以帮助您指出正确的方向。我以前从未遇到过此类问题,如果脚本加载后为什么不执行?
这里是single-min.js的摘录,以供参考:
console.log('loaded-single');
// Init flickity
$(document).ready(function(){
// Only execute if slideshow block exists
if($('.custom-block.slideshow').length > 0 ){
var slider = ('.custom-block.slideshow .flickity');
// Init
$(slider).flickity({
// Options
cellSelector: '.carousel-cell',
cellAlign: 'left',
imagesLoaded: true,
adaptiveHeight: true,
prevNextButtons: true,
arrowShape: 'M0,49.8l33.1-33.2h27L36.8,39.8h63.3v19.7H36.7l23.5,23.4H33.2L0,49.8z',
pageDots: false,
fullscreen: true,
});
}
答案 0 :(得分:0)
如果您准确定位了所有目标,那么
var slider = ('.custom-block.slideshow .flickity');
可能是您的问题。试试这个:
var $slider = $('.custom-block.slideshow .flickity');
// Init
$slider.flickity({