2011-05-28 130 views
1

我有一个查询。 我用2种方式调用javascript事件的函数。javascript事件处理

  1. 内的HTML标签,如:

    <div id='someid' onmouseover='callFunc()'>Some Text</div> 
    
  2. 标签之外像脚本标签/外部文件:

    document.getElementById('someid').onmouseover=function(){ 
        alert('hi');  
    } 
    

现在,我认为无论是用于同一目的,然后这两种方式有什么区别吗?哪一个更好?两者的优点和缺点是什么?其次,有没有其他方法可以调用这个函数?

回答

3

两者都不好。你想要addEventListener。像jQuery库将使这很容易,就像这样:

$('#someid').mouseover(function() { alert('hi') }); 

把JavaScript的内嵌在HTML是不是一个好主意;很难写(你必须担心逃跑)并且难以维护。

直接指定给on*是可以的,但是对同一个元素中的同一个事件不能有多个事件处理程序。如果其他代码稍后尝试添加处理程序,它将消除处理程序。

0

这是很多更好地分离你的代码从你的HTML。

当你的所有代码在一个部分或更好的单独文件中组织得很好时,维护代码就容易多了。