1

我正在尝试在 wp-admin 中加载和执行一系列脚本文件,更具体地说是在帖子编辑屏幕上。目前,我能够成功加载文件,但实际上没有任何工作/执行。也没有控制台错误。

我在functions.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,
    });
}
4

1 回答 1

0

如果您准确定位所有内容,那么

var slider = ('.custom-block.slideshow .flickity');

可能是你的问题。尝试这个:

var $slider = $('.custom-block.slideshow .flickity');

// Init
$slider.flickity({
于 2018-12-21T14:52:50.170 回答