2013-07-12 116 views
0

此代码是否适用于其他人。最长的时间添加一个事件监听器没有工作。Javascript addEventListener麻烦

<head> 
    <title>Page Title</title> 
    <script> 
    window.onload = init(); 

    function init() { 
     svg = document.getElementsByTagName('svg'); 
     svg[0].addEventListener('click', mouseClick, false); 
    } 

    function mouseClick() { 
     alert('mouseClicked'); 
    } 
    </script> 
</head> 
<body> 

<svg><rect x="100" y="100" width="200" height="75"/></svg> 

</body> 

对于我工作过的每个项目,我都必须使用其他方法。我在做“addEventListener”错误吗?或者是什么?

回答

1

您的问题是:

window.onload = init(); 

通过包括括号,你调用的函数那一点,所以你正在做的是将调用的结果分配给init到window.onload。 您需要:

window.onload = init; 

将分配功能init进程的window.onload。

+1

谢谢!它接缝工作,因为我使用警报测试它,并显示警报。我想这只是在实际加载之前进行的。 – Slulego

1

init()调用该函数,除非它返回一个函数,否则这将不起作用。你需要做的是传递函数,而不是其返回值:

window.onload = init;