addEventListener onerror和错误事件不起作用

时间:2017-07-13 13:07:36

标签: javascript jquery asp.net image

我有一个asp.net控件,它通过重复控件加载dyanmically。 如果没有加载图像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)
    });

但即使图像存在,这也无效,此事件被触发,我没有找到图像找到图像 难道我做错了什么。 请帮忙

1 个答案:

答案 0 :(得分:1)

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

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