img错误事件未按预期工作

时间:2017-03-02 10:01:10

标签: jquery error-handling

我在使用jQuery和<img>标签进行错误处理时遇到了一些问题。我的代码如下所示:

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <meta charset="utf-8">
    <title>welp</title>
</head>
<body>
<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" alt="someFakeLink" width="150" height="78"/></a>
    <script>
        $(document).ready(function(){
            $("img").on("error", function(){
                $(this).hide();
                alert("AnnoyingPopups");
            });
        });
    </script>
</body>
</html>

我问,因为脚本适用于jsFiddle,但如果我将其写入index.html文件则不行。

我对此感到困惑和沮丧,因为它显然适用于jsFiddle,但当我在本地机器上执行时它不会。

小提琴链接在这里:https://jsfiddle.net/znq2y6h6/

我希望有人能向我解释这一点。

2 个答案:

答案 0 :(得分:0)

尝试将图片src放在&#39; http&#39;,它可能对您有所帮助。因此,请更改您的图片代码:

    <img src="http://www.stackoverflow.com/logo.png" alt="someFakeLink" width="150" height="78"/>

答案 1 :(得分:0)

抱歉,我犯了很多错误,请查看示例

Img错误事件无效你是否使用了文档就绪函数,因此如果首先调用DOM元素,那么将调用文档就绪调用和错误事件。

那时已经调用了img元素,以便错误事件无法正常工作

@ 在jsfiddle中,当它们是用于脚本和html元素的window.onload函数时

此代码用于您

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <meta charset="utf-8">
    <title>welp</title>
</head>
<body>
<script>
$(document).ready(function()
{
   $("img").on("error", function(){// not working
                $(this).hide();
                alert("AnnoyingPopups");
            });

function imagealertnotworking(e){alert('onerror image alert not working');} // not working
});

function imagealertworking(e){alert('onerror image alert working');} // working
</script>



<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" onerror="eval(alert('on dom working alert1'),imagealertworking())"  alt="someFakeLink" width="150" height="78"/></a>
<a href="http://stackoverflow.com"><img src="www.stackoverflow.com/logo.png" onerror="eval(alert('on dom working alert2'),imagealertnotworking())"  alt="someFakeLink" width="150" height="78"/></a>
</body>
</html>
&#13;
&#13;
&#13;