事件监听器和本地数据存储

时间:2016-06-21 13:04:25

标签: javascript addeventlistener

我是否可以通过侦听器函数将事件接收的数据存储到我的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> 数据。这有可能吗?

提前致谢!

1 个答案:

答案 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>