在JavaScript中,调用事件的方式有两种。
- (1)在script标签中调用
- (2)在元素中调用
一、在script标签中调用
在script标签中调用事件,指的是在< script >< /script >标签内部调用事件。
语法:
obj.事件名 = function()
{
……
};
说明:
obj是一个DOM对象,所谓的DOM对象,指的是使用getElementById()、getElementsByTagName()等方法获取到的元素节点。
由于上面是一个赋值语句,而语句一般都是要以英文分号结束的,所以最后需要添加一个英文分号(;)。虽然没加上也不会报错,不过为了规范,还是加上比较好。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
window.onload = function ()
{
//获取元素
var oBtn = document.getElementById("btn");
//为元素添加点击事件
oBtn.onclick = function ()
{
alert("绿叶学习网");
};
}
</script>
</head>
<body>
<input id="btn" type="button" value="弹出" />
</body>
</html>
默认情况下,预览效果如下图所示。
当我们点击【弹出】按钮后,此时预览效果如下图所示。
分析:
oBtn.onclick = function () {alert("绿叶学习网");};
分析图
是不是跟给元素属性赋值很相似呢?其实从本质上来说,这种事件调用方式就是操作元素的属性。只不过这个属性不是一般的属性,而是“事件属性”。上面这句代码的意思就是给元素的onclick属性赋值,这个值是一个函数来的。你没看错,函数也是可以赋值给一个变量的。
小伙伴们一定要从操作元素的HTML属性这个角度来看待事件操作,这能让你对事件操作理解得更深。
二、在元素中调用事件
在元素中调用事件,指的是直接在HTML属性中来调用事件,这个属性又叫做“事件属性”。
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
function alertMes()
{
alert("绿叶学习网");
}
</script>
</head>
<body>
<input type="button" onclick="alertMes()" value="弹出" />
</body>
</html>
默认情况下,预览效果如下图所示。
当我们点击【弹出】按钮后,浏览器预览效果如下图所示。
分析:
事实上,上面这个例子还可以写成下面这种形式,两者是等价的。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="button" onclick="alert('绿叶学习网')" value="弹出" />
</body>
</html>
在script标签中调用事件,我们需要使用getElementById()、getElementsByTagName()等方法来获取想要的元素,然后才能对其进行事件操作。
在元素属性中调用事件,我们是不需要使用getElementById()、getElementsByTagName()等方法来获取想要的元素的,因为系统已经知道事件的主角是哪个元素了。
在实际开发中,我们更倾向于在script标签中调用事件,因为这种方式可以使得结构(HTML)与行为(JavaScript)分离,代码更具有可读性和维护性。