jQuery事件绑定和委托实例

本文给出了jQuery事件绑定和委托共享的示例,供您参考:

jQuery事件的绑定和委托可以以多种方式实现,比如()、绑定()、活()、委托()和一()。



有时我们可以绑定这样的事件:

复制代码如下:$(# DIV1)。Click(function(){){

警报(触发器之后单击);

});

上面的事件绑定可以以多种方式实现:



1。在()

将代码复制如下:无数据

$(p)。

警报($(this))文本());

});



数据/参数

功能myhandler(事件){

警报(事件,数据,数据);

}

$(p)。

在()对应于关闭(),用于删除事件绑定:

复制代码如下:var =函数(){()

用于处理某一类事件的代码

};

现在富将是…单击段落时调用…

$()。



富将不再是…

$()。

关闭():在()上删除的绑定

一():仅绑定一次。



2。绑定()

参数:

(类型,{数据},功能(间的事件))

类型:包含一个或多个事件类型的字符串,它们将多个事件与空间分隔开。例如,单击或提交

一个额外的数据对象,数据是作为一个event.data属性值传递给事件对象



FN的处理函数:绑定到每个匹配元素的事件



(类型,{数据},false)

类型:包含一个或多个事件类型的字符串,它们将多个事件与空间分隔开。例如,单击或提交

一个额外的数据对象,数据是作为一个event.data属性值传递给事件对象



将第三个参数设置为false将使默认操作无效:。



同时绑定多个事件类型:

The copy code code is as follows: $('#foo').Bind ('mouseenter mouseleave', function () {() {)

$(这)ToggleClass('entered);

});

同时绑定多个事件类型处理程序:

复制代码代码如下:$(按钮)。Bind({

(点击:功能){ $(p)(SlideToggle);},

(鼠标悬停:功能){ $(体),Css(背景颜色

(mouseout:功能){ $(体),Css(背景颜色

});

在事件处理之前,您可以传递一些额外的数据。

复制代码代码如下:函数处理程序(事件){

警报(事件,数据,数据);

}

$(p)。Bind(单击



取消默认行为,并通过返回false防止事件发生泡沫。

复制代码如下:$(表单)。Bind()

捆绑中存在的问题

如果你想将表格中的点击事件绑定到10列和500行,那么搜索和遍历5000个单元格将导致脚本执行速度慢,并保存5000个TD元素,相应的事件处理程序将占用大量内存(类似于让每个人都表示自己站在门口)。

基于这个例子的前面,如果我们想实现一个简单的相册应用程序页面只显示50照片缩略图(50细胞),用户点击X页(或下一页)通过AJAX链接服务器可以动态加载其他50张照片。在这种情况下,它似乎是可接受的使用。绑定()50细胞结合事件的方法。

事实上not.using.bind()方法只会点击50细胞在第一页点击事件,不会有点击事件在细胞负载在随后的页面动态。换句话说,(。绑定)只把它当现有元素绑定事件,不是因为新的元素绑定事件未来(类似新员工不接受快递)。

事件委托可以解决上述两个问题,具体到代码中,只需使用jQuery 1.3新的Live()方法,而不是绑定()方法:

复制代码如下:$(# info_table TD)。活(点击),功能({ / *显示更多的信息