采用jQuery事件模型,我们可以更为灵活的为页面元素绑定事件,使用统一的操作方法建立更为规范的代码。
我们来回顾一下,在DOM0级模型中,事件都是固定的写在元素标签之中,这种方式是最古老的方式,事件的绑定欠缺灵活。
在DOM2级模型中,虽然各大浏览器厂商都提供了事件监听方法,但是各个厂商之间又欠缺统一的规范,使得开发人员不得不对不同的浏览器使用不同的规范。比如说老版本的IE提供的是attachEvent()方法而不是addEventListener()方法。
在jQuery中提供了统一和兼容的方法,能让我们开发出兼容性更强、更为规范的代码。
在jQuery中提供了bind方法。语法如下:
bind(eventType,data,listener) |
|
参数 |
|
eventType |
(字符串)为将要建立的处理程序指定事件类型的名称。这个事件类型可以添加命名空间后缀,后缀和事件名称之间以圆点分隔。 |
Data |
(对象)调用者提供的数据,作为属性data附加到Event实例,可供事件处理函数使用。如果省略,事件处理函数就被指定为第二个参数。 |
Listener |
(函数)将被建立为事件处理程序的函数。 |
返回 |
包装集 |
jQuery还提供了删除事件处理函数unbind语法类似。
来看个简单的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | < html xmlns="http://www.w3.org/1999/xhtml"> < head > < title ></ title > < script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></ script > < script type="text/javascript"> $(function () { $('#show').bind('click', 'Hello', function (event) { alert(event.data); }); $('#ddl').change(function () { var current = this; var div = $('#show'); if (current.options[current.selectedIndex].id == 'bind') { div.bind('click', current.options[current.selectedIndex].value, function (event) { alert(event.data); }); } else if (current.options[current.selectedIndex].id == 'unbind') { div.unbind('click'); } }) }) </ script > </ head > < body > < select id="ddl"> < option id='bind'>绑定事件</ option > < option id='unbind'>取消绑定</ option > </ select > < div id='show' style="border:1px solid black; width:200px; height:200px; background-color:Aqua;">点我</ div > </ body > </ html > |
运行结果:
示例非常简单这里就不再多解释。jQuery中还提供了一些快捷绑定事件的方法,比如说click()、focus()等,它们基本上能和bind()方法达到相同效果,不同的是采用这些方法将没有办法给监听的函数传递参数了。
当然jQuery还提供了更多的事件绑定方法,比如说one()、toggle()方法,感兴趣的朋友可以自己学习。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~