事件库
很多时候我们仅仅是将JavaScript 类库用于事件管理,毕竟手动处理众多浏览器的差异性吃力不讨好。现在我为大家介绍如何使用jQuery 的API 来做事件管理,当然使用其他的类库也是不错的选择,比如Prototype(http://www.prototypejs.org/)、MooTools(http://mootools.net/)和YUI(http://developer.yahoo.com/yui)。可以参照更多更深入的文档来获取它们各自的API 信息。
jQuery 的API 提供了bind() 函数用来跨浏览器绑定事件监听。在一个jQuery 实例上调用此函数,传入事件名称和回调函数:
- jQuery("#element").bind(eventName, handler);
比如,给一个元素注册点击事件:
- jQuery("#element").bind("click", function(event) {
- // ...
- });
jQuery 提供了一些常用事件的快捷方法,比如click、submit 和mouseover。看这段代码:
- $("#myDiv").click(function(){
- // ...
- });
需要注意的是,使用这个方法之前要确保DOM 元素是存在的,这一点很重要。例如,应当在页面载入完成后绑定事件,因此需要绑定window 的load 事件,然后添加监听:
- jQuery(window).bind("load", function() {
- $("#signinForm").submit(checkForm);
- });
然而,还有一个比监听window 的load 事件更好的方法,即DOMContentLoaded。当DOM 构建完成时触发这个事件,这时图片和样式表可能还未加载完毕。这也就是说这个事件一定会在用户和页面产生交互之前触发。
广州网站建设,广州网站设计,广州网站制作,网站建设,网站设计,广州网站建设公司,广州网站设计公司
并不是所有的浏览器都支持DOMContentLoaded,因此jQuery 将它融入了ready() 函数,这个函数是兼容各个浏览器的:
- jQuery.ready(function($)){
- $("#myForm"). bind("submit", function(){ /*...*/});
- });
实际上,可以不用ready() 函数而直接将回调函数写入jQuery 对象。
- jQuery(function($){
- // 当页面内容可用时调用
- });