【问题标题】:addEventListener onerror and error event is not working [duplicate]addEventListener onerror 和错误事件不起作用[重复]
【发布时间】:2017-12-18 06:59:14
【问题描述】:

我有一个 asp.net 控件,它通过重复控件动态加载。 如果未加载图像 src 或在图像元素上触发错误事件,我只想要一个替代图像,但它不起作用

<asp:Image ID ="test1" ImageUrl="test1.jpg"  runat="server" CssClass="NotFoundMain" />
<asp:Image ID ="test2" ImageUrl="test14.jpg"  runat="server" CssClass="NotFoundMain" />

 $(document).ready(function () {

        function callImageError(test) {
            console.log(test)
            alert()
        test.setAttribute('src', './Image/WebSiteImage/ImageNotAvailable.jpg');
    }

    function gotImageElement(item) {
        item.addEventListener('onerror', callImageError(item));
//        item.onerror(callImageError(item))
    }

    var mImg = document.getElementsByClassName("NotFoundMain");
    for (var i = 0; i < mImg.length; i++) {
            gotImageElement(mImg[i])
        }
        //mImg.forEach(gotImageElement)
    });

但是即使图像在那里也不起作用,这个事件被触发并且我没有找到图像图像 难道我做错了什么。 请帮忙

【问题讨论】:

  • 与您的问题无关,但图像控件使用ImageUrl,而不是src
  • 对不起,这是一个错字,但主要是为什么我的错误事件不起作用,它总是为每个元素触发

标签: javascript jquery asp.net image


【解决方案1】:

事件名称是error,而不是onerror。另一个问题是您必须提供一个在事件发生时调用的函数,而不是立即调用它。

item.addEventListener('error', function(){ callImageError(item) });

【讨论】:

  • 我都试过了,都不行
  • @ParshuramKalvikatte 这也可能是$(document).ready 的问题。当文档准备好时,error 事件可能已经被触发了。你需要在它发生之前注册你的听众。
猜你喜欢
  • 1970-01-01
  • 2014-12-24
  • 2018-06-04
  • 1970-01-01
  • 2016-02-21
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
相关资源
最近更新 更多