我是否可以通过侦听器函数将事件接收的数据存储到我的HTML文件中的变量中(我的意思是在侦听器函数的范围之外)?
cars
JSFIDDLE:https://jsfiddle.net/dtxwr6h9/
在此示例中,我希望能够访问侦听器函数之外的<div id="id1"></div>
<script>
var a = document.querySelector('#id1');
a.addEventListener('fooEvent', function(e){
console.log(e.detail);
});
var event = document.createEvent("CustomEvent");
var data = "[1,2,3]";
event.initCustomEvent("fooEvent", true, true, data);
a.dispatchEvent(event);
</script>
数据。这有可能吗?
提前致谢!
答案 0 :(得分:1)
不确定。在捕获事件后,只需使用JSON.stringify将其存储在变量或localStorage中。然后在必要时取消绑定事件处理程序。
E.g。
<script>
// variable here for storage
var storedObj;
var a = document.querySelector('#id1');
a.addEventListener('fooEvent', function(e){
console.log(e.detail);
// store it in your outer scoped variable, or localStorage, if you prefer.
storedObj = e.detail;
});
var event = document.createEvent("CustomEvent");
var data = "[1,2,3]";
event.initCustomEvent("fooEvent", true, true, data);
a.dispatchEvent(event);
</script>