2016-03-31 2 views
0

Если я использую с именем функции вместо этого, это хорошо:Влияет ли вложенная анонимная функция в Javascript, связанная с обработчиком событий?

<script type="text/javascript"> 
    window.onload = function(){ 
     var img = document.getElementById('im'); 
     img.onload = fun(); 

    } 
function fun() 
{ 
    alert("Image loaded"); 
}   
</script> 

<img src="picture.png" id="im"/> 

Но мой вопрос заключается в том, что, когда я пытаюсь сделать то же самое с помощью анонимной функции (, как показано ниже), почему это не работает?

<script type="text/javascript"> 
     window.onload = function(){ 
     var img = document.getElementById('im'); 
      img.onload = function(){ 

      alert("Image loaded"); 
     } 
     }    
</script> 

<img src="picture.png" id="im"/> 
+4

'весело == весело()' – elclanrs

+2

сделать 'IMG!. onload = fun; ' – gurvinder372

+0

' img.onload = fun(); ', вы должны назначить обработчик, не вызывающий его самостоятельно – Ramanlfc

ответ

0

В первом примере fun вызывается, когда обработчик события присоединен к изображению (после загрузки изображения).

Во втором примере анонимная функция прикрепляется к изображению после загрузки изображения.

Чтобы увидеть поведение, которое вы хотите, попробуйте:

<script type="text/javascript"> 
    window.onload = function(){ 
    var img = document.getElementById('im'); 
    img.onload = fun; 

    img.src = "picture.png"; 
    } 

    function fun() 
    { 
    alert("Image loaded"); 
    }   
</script> 

<img id="im"/> 

или

<script type="text/javascript"> 
    window.onload = function() { 
    var img = document.getElementById('im'); 
    img.onload = function(){ 
     alert("Image loaded"); 
    } 

    img.src="picture.png" 
    }    
</script> 

<img id="im"/> 

или

<script type="text/javascript"> 
    function fun() 
    { 
    alert("Image loaded"); 
    }   
</script> 

<img id="im" src="picture.png" onload="javascript:fun();"/> 
+0

нет, я бы тоже не рекомендовал последний пример. Я пытался указать, что обработчик события должен быть связан до загрузки изображения. – paul