javascript – onload事件处理程序在执行后是否自动释放?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – onload事件处理程序在执行后是否自动释放?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1320字,纯文字阅读大概需要2分钟。
内容图文
![javascript – onload事件处理程序在执行后是否自动释放?](/upload/InfoBanner/zyjiaocheng/728/76cff4050f254a6e9a01e764928d1562.jpg)
是匿名时执行的onload事件是在执行后发布的吗?
就像你这样做
var tempImg = new Image()
tempImg.onload = function () {
alert("loaded");
}
tempImg.src = "https://images.google.ca/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
或这个
<img id='img' />
<script>
var tempImg = document.getElementById("img")
tempImg.onload = function () {
alert("loaded");
}
tempImg.src = "https://images.google.ca/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
</script>
您是否必须以某种方式清除它以防止在其他地方更改图像时再次触发事件?如果是这样,那么正确的方法是什么?刚设置为undefined?你能在里面清楚吗?
解决方法:
如果使用onload属性分配事件侦听器,则为no,它不会自动释放.在某些情况下,它可以再次触发,例如图像源被修改.您可以通过将其设置为undefined或null或删除属性来清除它.这可以在事件处理函数本身内完成:
image.onload = function(event) {
delete image.onload;
/* do something */
};
如果您使用addEventListener()来处理事件,则需要使用removeEventListener().我们可以为函数添加一个内部名称,以便我们可以引用它:
image.addEventListener('load', function myLoadHandler(event) {
image.removeEventListener(myLoadHandler);
/* do something */
});
但是,在较新的浏览器中,有一个比其中任何一个更好的选择.您可以定义一个事件侦听器,它将使用new once选项自动删除自身:
image.addEventListener('load', function(event) {
/* do something */
}, { once: true });
内容总结
以上是互联网集市为您收集整理的javascript – onload事件处理程序在执行后是否自动释放?全部内容,希望文章能够帮你解决javascript – onload事件处理程序在执行后是否自动释放?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。