文章目录
- 不使用 jQuery,给元素注册事件监听器
- 通过jQuery给元素注册事件监听器
- 通过标签的属性来注册事件监听器
不使用 jQuery,给元素注册事件监听器
<script type="text/javascript">window.onload = function () {alert("test");var a = document.getElementById("validate");// 注册事件监听器a.onclick = function () {alert("test");};};
</script>
代码解读:
浏览器在加载 HTML 文档时,加载到标签 <script/> 时就会立即执行标签体中的代码。于是 window.load = function(){}; 会被执行,这行代码的作用就是给对象 window 注册加载事件监听器,因此当 HTML 文档全部加载完成后,就表示发生了加载事件,那么监听加载事件的函数就会被执行,即 function(){}; 内的代码会被执行,而这个函数内的代码的作用就是给 id=validate 的元素注册点击事件监听器,最后的效果就是 HTML 文档加载完毕后,id=validate 的元素就已经注册了点击事件监听器。
window.load = function(){}; 其中的匿名函数 function(){} 就是一个函数对象,将函数对象赋值给窗口对象 window 的属性 load,就是给对象 window 注册加载事件监听器。
通过jQuery给元素注册事件监听器
$(function(){$("#create").click(function(){location="form.action";});
});
代码解读:
$() 是jQuery的load事件处理函数,当HTML页面全部加载完后就会执行函数 $()。$(function(){}) 而这个代码语句含义就是将函数对象 function(){} 传入函数 $() 中,那么当执行函数 $() 时,该函数内部就会去执行 function(){} 中的代码。而 function(){} 内的代码作用就是找到 id=create 的元素,这里使用 jQuery 的重载函数 $() 获取 DOM 对象,并且封装成 jQuery 对象,再调用 jQuery 对象的函数 click() 来给 id=create 的 DOM 对象注册点击事件监听器。当该 DOM 对象发生点击事件时,就会调用点击事件监听器,而该监听器中的代码 location="form.action" 的作用就是将 DOM 对象的属性 location 的值设为 form.action,设好之后浏览器就会立即向 form.action 这个资源发送访问请求。
通过标签的属性来注册事件监听器
<input class="button" type="button" value="新建项目" onclick="location='projectform.action';"/>
如上的标签 <input/> 的属性 onclick 就可以指定点击事件处理程序。其中的 location='projectform.action';是 JS 代码语句,点击事件发生时就会执行这条代码语句。这条代码的作用就是将标签 <input/> 的属性 location 赋值为 projectform.action,那么赋值后浏览器就会立刻向 projectform.action 资源发送访问请求。