为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用单独的 .js 文件正确地将 Fancybox 初始化为 WordPress?

如何使用单独的 .js 文件正确地将 Fancybox 初始化为 WordPress?

PHP
SMILET 2023-03-04 11:19:01
我进行了搜索,并在此处使用wp_add_inline_script. 它有效。但是,如果我想将我的初始化脚本保存到另一个 .js 文件中怎么办?这就是我最初想要的。我怎样才能正确加载?我试过了,但是我的加载init-fancybox一定是太早了,因为我得到了一个错误。(我的init-fancybox脚本不是问题,因为它在使用正确加载时有效wp_add_inline_script)function fancybox_enqueues() {     wp_register_script( 'fancybox', get_theme_file_uri( '/assets/js/jquery.fancybox.min.js' ), array('jquery'), '3.5.7', true);    wp_register_script( 'init-fancybox', get_theme_file_uri( '/assets/js/init-fancybox.js' ), array('jquery','fancybox'), '1.0', true);    wp_register_style( 'fancybox-css', get_theme_file_uri( '/css/jquery.fancybox.min.css' ), '1.0');    if ( is_singular( 'item' ) ) {        wp_enqueue_script( 'jquery');        wp_enqueue_script( 'fancybox' );        wp_enqueue_script ('init-fancybox');        wp_enqueue_style( 'fancybox-css' );    }}add_action( 'wp_enqueue_scripts', 'fancybox_enqueues');这是我得到的错误TypeError: $ is not a function这是init-fancybox.js$('[data-fancybox="single-item__gallery"]').fancybox({    buttons : [         "zoom",        "share",        //"slideShow",        "fullScreen",        //"download",        "thumbs",        "close"    ],    thumbs : {      autoStart : false    }  });
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

在您的代码运行时,jQuery 似乎未加载。尝试在其周围添加以下函数以确保在代码运行之前 jQuery 存在:


jQuery(document).ready(function ($) {


  // Your function goes here:

  $('[data-fancybox="single-item__gallery"]').fancybox({

    buttons: [

      "zoom",

      "share",

      //"slideShow",

      "fullScreen",

      //"download",

      "thumbs",

      "close"

    ],

    thumbs: {

      autoStart: false

    }

  });


});


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号