我注意到一些按钮在我的主题中停止工作,所以我开始调试,发现问题出在我的模态脚本注册上。
请有人能告诉我这是如何导致问题的吗?我已经以同样的方式注册并加入了其他几个文件。
public function __construct()
{
add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) );
}
function scripts() {
wp_register_script( 'modal_script', plugin_dir_url( __FILE__ ) . 'js/modal.js', array( 'jquery'), NULL, false );
wp_register_style( 'modal_css', plugin_dir_url( __FILE__ ) . 'css/modal.css');
wp_enqueue_script( 'modal_script' );
wp_enqueue_style( 'modal_css');
}
以及导致冲突的 modal.js 文件(或我注册/排队的方式):
(function ($) {
"use strict";
$(document).ready(function () {
var my_modal_modal = document.querySelector(".my-modal-modal");
var my_modal_trigger = document.querySelector(".my-modal-trigger");
var my_modal_closeButton = document.querySelector(".my-modal-close-button");
function my_modal_toggleModal() {
my_modal_modal.classList.toggle("show-modal");
}
function my_modal_windowOnClick(event) {
if (event.target === my-modal-modal) {
my_modal_toggleModal();
}
}
my_modal_trigger.addEventListener("click", my_modal_toggleModal);
my_modal_closeButton.addEventListener("click", my_modal_toggleModal);
window.addEventListener("click", my_modal_windowOnClick);
})
})(jQuery);
在此先感谢您的任何建议。
编辑:控制台输出:
未捕获的类型错误:无法在 HTMLDocument 中读取 null 的属性“addEventListener”。(modal.js:21) 在 i (jquery.js?ver=1.12.4-wp:2) 在 Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4-wp:2) 在功能。准备好 (jquery.js?ver=1.12.4-wp:2) 在 HTMLDocument.J (jquery.js?ver=1.12.4-wp:2)
更新:已解决
好吧,在将其缩小到 2 行代码之后,我决定用 jQuery 重新编写触发器并且它起作用了。我想我会继续重写整个文件来整理它。