javascript - svg 脚本仅在刷新后触发
问题描述
我在这个用 CSS 和 JavaScript 定制的wordpress 页面上有两个可点击的 svg 文件。第一个 svg(大小:447kb)加载没有问题,单击时脚本会触发。第二个 svg 加载时间更长(大小:993kb),.onclick 仅在页面刷新时才有效。(控制台说:未捕获的类型错误:无法设置属性 'onclick' of null)
经过大量研究,我怀疑这是一个 Ajax 问题。没有停用 Ajax 的选项,所以我尝试了以下函数将脚本放入页脚:
function load_js_assets() {
if( is_page(#) ) {
wp_register_script('script', 'url/script.js', array( 'jquery' ), '0', false);
wp_enqueue_script('script');
}
}
add_action('wp_enqueue_scripts', 'load_js_assets', 99999);
这没有做任何事情。
在 script.js 中,我尝试了 window.onload, window.addEventListener("load", function(){}, document.load, document.addEventListener("DOMContentLoaded",...) 没有任何效果。
目前我的脚本是这样的:
window.addEventListener("load", function(){
(function() {
/*function for svg1*/
};
})();
(function(){
/*function for svg2*/
};
})();
});
请问我这里还有其他选择吗?(请原谅我的非 DRY 编码方式,我还是菜鸟)
解决方案
尝试使用此方法应用 onclick 处理程序 -
$(document.body).on('click', '.update' ,function(){
推荐阅读
- python - Python中“word for word”和“char for char”之间的区别
- junit - 如何在vert.x中为消费者Verticle的启动方法编写Junit测试用例?
- php - 在 PHP 中提交到电子邮件时,表单会抛出错误
- security - 有没有办法保护 EXE 文件?
- reactjs - 在三元运算符中反应jsx渲染实际的html?
- google-cloud-platform - 使用 terraform 在 GCP 作曲家中因运行状况检查错误而失败
- java - 如何减小合并后的 pdf 大小并加快与 PDFBox 的合并操作?
- ssl-certificate - aws 如何为路由 53 托管域设置云端分发的 ssl 证书?
- vue.js - 当孙文件发送成功的 PUT 请求时如何更新 vue 中的道具
- mysql - 为什么 Laravel 在 DB::listen 之后重定向到错误的 id?