jQuery绑定事件的命名空间详解
2010-08-23 10:41:40.0
jQuery的bind的函数在实际应用其实不是特别多,只是他可以绑定一个事件,但不会即时触发,也可以通过unbind来解除绑定。
在没有看到这篇 文章之前,我一直不知道原来bind也可以有命名空间。事实上,我看完这篇文章后,再去翻了一下手册,也才发现了一点点的注释。但手册也仅仅是一句话就带 过去了。没有过多的深究,或许他认为命名空间这玩意很简单,没有必要多解释?
先看手册,由于bind方法有三个参数(type,[data],fn),所以手册上这么介绍:
jQuery的绑定事件非常方便,有bind、unbind、live、one,还有它帮你把一些常用的事件给单独了出来,比如控件的onclick事件,我们绑定onclick事件的时候只需要
$("#testButton").click(function() {
alert("I'm Test Button");
});详细的可以参考我写过的jQuery事件机制
jQuery如何重新绑定已经绑定的事件?虽然我们现在推荐行为分离,渐进增强,但在很多遗留系统里还是存在很多这样的代码
<input type="button" value="ClickMe" id="btn1" onclick="foo()" />
就是直接在DOM元素上绑定事件
这样做有很多缺点
1.代码高度耦合
2.增加HTML大小
3.书写不了逻辑性很强的代码
bind:function (type, data, fn) {
return type == "unload" ? this.one(type, data, fn) : this.each(function () {
jQuery.event.add(this, type, fn || data, fn && data);
/