分配'onmouseover'事件处理程序

Ton*_*ion 2 javascript

请告诉我这段代码有什么问题:

 <script type="text/javascript" >

function createimg()
       {
         var img = new Image();
       img.src='link/to/image';
       img.alt='Next image';  img.id = 'span1'; img.style.zIndex = 10;
       img.style.position = 'absolute';  img.style.display='block'; img.style.top = '130px';
       img.style.padding='10px'; img.style.left='440px';    img.className ='dynamicSpan';
        document.body.appendChild(img);
        return img;
        }

    function al()
    {
     alert('loaded');
    }
   a = createimg();

    a.onmouseover = al();

</script>
Run Code Online (Sandbox Code Playgroud)

具体到最后一部分,我试图分配a的'onmouseover'事件处理程序,它是一个图像元素.它不会出于某种原因分配此事件处理程序,而只是在页面加载时执行该函数.

怎么了?

托尼

Joh*_*ica 14

a.onmouseover = al;
Run Code Online (Sandbox Code Playgroud)

当你编写时,al()你在现场调用函数并分配函数的返回值(由于没有return语句而未定义)a.onmouseover.相反,您想要分配函数本身,因此您只需要删除括号.