1 . 绑定事件
语法 :
bind(type,data,fn)
描述 : 为每一个匹配的特定元素(像 click)绑定一个事件处理器函数.
type(String) : 事件类型
data(Object) : (可选)作为 event.data 属性值传递给事件对象的额外数据对象/
fn(Function) : 绑定到每个匹配元素的事件上面的处理函数.
示例 :
当每个p标签被点击的时候,弹出器文本
$("p").bind("click",function(){ alert($(this).text() ); })
在事件处理前传递一些附加的数据.
function handler(event) { //event.data 可以获取 bind()方法的第二个参数的数据 alert(event.data.foo) ; } $("p").bind("click", {foo: "bar"}, handler)
通过返回false来取消默认的行为并阻止事件的起泡.
$("form").bind("submit", finction() {return false; })
通过使用 preventDefault( ) 方法值取消默认的行为.
$("form").bind("submit", function(event){ event.preventDefault(); });
2 . 解除事件
语法 :
unbind(type,fn);
解释 :
bind() 的反向操作,从每一个匹配元素中删除绑定的事件.
如果没有参数,则删除绑定的事件.
如果把绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数被删除.
type(String) : (可选),事件类型.
fn(Function) :(可选),要从每个匹配元素的事件中反绑定的事件处理函数.
示例 :
把所有段落的所有事件取消绑定
$("p").unbind()
将段落中的 click 事件取消绑定
$("p").unbind("click")
删除特定函数的绑定,将函数作为第二个参数传入.
var foo = function () { // 绑定事件 和 解除事件的事件处理函数 }; $("p").bind("click mouseenter", foo); // 给p段落绑定 click.mouseenter事件 $("p").unbind("click", foo); 只解除了p段落标签的 click 事件
3 . 自定义事件
语法 :
trigger(type,data);
解释 : 在每一个匹配的元素上触发某类事件,它触发的是由 bind() 注册的自定义事件.
type(String) : 要触发的事件类型.
data(Array) : (可选)传递给事件处理函数的附加参数.
示例 :
给一个按钮添加自定义事件
$("button").bind('myClick',function(ev,a,b)) { // 给按钮 button 添加自定义事件 myClick 事件 }
然后通过 trigger() 触发自定义事件
$('button').trigger('myClick',[1,2])
4 . 一次性事件
语法 :
one(type,data,fn)
解释 : 为每一个匹配元素的特定事件(比如 click ) 绑定一个一次性的事件处理函数,在每个对象上,这个事件处理函数只会被执行一次,其他规则与 bind() 函数相同.
type(String) : 事件类型
data(Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象.
fn(Function) : 绑定到每个匹配元素的事件上面的处理函数.
示例 :
当所有段落被第一个点击的时候,显示所其文本.
$("p").one("click", function() { // 只有第一次点击的时候才会触发,再次点击不会触发了. alert($(this).text() ); });
5 . 单双击事件
在点击按钮的时候,会出现双击的时候会有2次单击事件的发生.
比如 :
解决 ;

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <button>按钮</button> <script src="jquery.js"></script> <script> $(function () { // var time = null; // // $('div').click(function () { // // 取消上次延时未执行的方法 // clearTimeout(time); // //执行延时 // time = setTimeout(function(){ // //do function在此处写单击事件要执行的代码 // },300); // }); // // $('div').dblclick(functin ({ // // 取消上次延时未执行的方法 // clearTimeout(time); // //双击事件的执行代码 // }); // 单双击 的时间 间隔 是300ms // 如果解决 单双击冲突 // 先做两次单击 一次双击 中间间隔 小于300ms // 定义 timer是null, var timer = null; $('button').click(function(event) { // console.log(timer); //清楚定时器,用定时器的时候要先清除定时器.当我们双击的时候,在点击第一下的时候,时间没到300ms, // 所以不会走 timer = setTimeout(function() 函数.第二下点击的时候清除的是第一下点击的定时器,所以第二次 // 没有到300ms.所以显示双击,在双击的时候清除第二次点击的定时器. clearTimeout(timer); // 定时器 300ms 一次性定时器 timer = setTimeout(function(){ console.log('单机了'); }, 300); }); $('button').dblclick(function(event) { // console.log(timer); clearTimeout(timer); console.log('双机了'); }); }) </script> </body> </html>