javascript - JQuery error()-funktionen fungerar inte i IE


Jag har följande bildelement vars src inte existerar. Jag vill använda jQuerys error-funktion för att upptäcka om den inte har laddats och ersätta src med en generisk bild som jag vet att den finns. Detta fungerar i Chrome och Firefox men inte i IE. Varför fungerar detta inte i IE och finns det några lösningar? Tack!

<img id="main" src="missing-image.jpg" />

<script type="text/javascript">

    $(function () {
        $("#main").error(function () {
            $("#main").attr("src", "generic.jpg");
        });
    });

</script>

Svar #1

Timingproblem?

DEMO HÄR

<img id="mainImage" src="placeholder.jpg" />

<script type="text/javascript">
$(document).ready(function() {
  $("#mainImage").error(function () {
    $(this).attr("src", "generic.jpg");
  });
  $("#mainImage").attr("src","possibly_missing_image.jpg");
});

</script>

Svar #2

Jag stötte på samma problem med IE och genom att sätta img src till sig själv gavs tillräckligt med tid för att IE skulle upptäcka bildfelet

$(document).ready(function() {
  $("#mainImage").error(function () { 
    $(this).attr("src", "generic.jpg");
  })
  .each(function() {
  $(this).attr("src",$(this).attr("src"));
  });
 });