javascript - 用wordpress写JS
问题描述
toggler.addEventListener('click', toggleMB);
devtools 显示,上面一行中的 AddEventListener 是类型错误。wordpress正常,不支持js,还是依赖脚本入队规则?
这如果是完整的脚本文件:
let toggler = document.querySelector('.menutoggle');
let mbMenu = document.querySelector('.sidemenu');
let mbMenuBack = document.querySelector('.sidelayout');
// let marker = document.querySelector('.ltbottommenu');
function toggleMB(){
console.log('hooh')
mbMenu.classList.toggle('sidemenu__active');
if (mbMenu.classList.contains('sidemenu__active')) {
toggler.childNodes[0].src = "/assets/img/cross.svg"
toggler.classList.add('menutoggle__active');
mbMenuBack.classList.add('sidelayout__show');
}
else {
toggler.classList.remove('menutoggle__active');
mbMenuBack.classList.remove('sidelayout__show');
toggler.childNodes[0].src = "/assets/img/menu.svg"
}
};
toggler.addEventListener('click', toggleMB);
mbMenuBack.addEventListener('click', toggleMB);
这是 wordpress 中 function.php 文件中的脚本:
wp_enqueue_script ( 'script-main', get_template_directory_uri() . '/assets/js/main.js', array(), '1.0.0', false);
解决方案
尝试删除()
frommbMenuBack.addEventListener('click', toggleMB());
以成为:mbMenuBack.addEventListener('click', toggleMB);
第二个参数必须是函数而不是函数的结果。
最好将它们实现为匿名函数或使用更新的技术。
参考:https ://www.w3schools.com/jsref/met_element_addeventlistener.asp
推荐阅读
- join - 在 Scala spark 中使用两个不同的 RDD
- wordpress - 特定类别的固定价格
- objective-c - 快速创建依赖于另一个objective-c pod的pod
- javascript - 更新签名用户的firebase数据中的显示名称不起作用,不要更新
- amazon-web-services - 将 DynamoDB 表移动到 S3 并自动更新 S3
- ms-access - 如何防止用户修改查询数据表结果中的数据 MS Access
- java - 将 Kotlin 转换为 Java 时的错误方法
- airflow - Airflow + Sentry - 没有来自 dags/tasks 的信息
- reactjs - 将 React Native Component 传递给 children 并将其渲染到相同的位置
- html - div 粘性位置不起作用 tailwindcss