addEventListener onerror 和错误事件不起作用

Par*_*tte 6 javascript asp.net jquery image

我有一个 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)
    });
Run Code Online (Sandbox Code Playgroud)

但这不起作用,即使图像在那里,此事件被触发,并且我没有找到图像图像我做错了什么吗?请帮忙

Luk*_*tor 4

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

item.addEventListener('error', function(){ callImageError(item) });
Run Code Online (Sandbox Code Playgroud)