语法 : html
bind(type,data,fn)
描述 : 为每个匹配的特定元素(像 click)绑定一个事件处理器函数.jquery
type(String) : 事件类型ide
data(Object) : (可选)做为 event.data 属性值传递给事件对象的额外数据对象/函数
fn(Function) : 绑定到每一个匹配元素的事件上面的处理函数.this
示例 : spa
当每一个p标签被点击的时候,弹出器文本code
$("p").bind("click",function(){ alert($(this).text() ); })
在事件处理前传递一些附加的数据.orm
function handler(event) { //event.data 能够获取 bind()方法的第二个参数的数据 alert(event.data.foo) ; } $("p").bind("click", {foo: "bar"}, handler)
经过返回false来取消默认的行为并阻止事件的起泡.htm
$("form").bind("submit", finction() {return false; })
经过使用 preventDefault( ) 方法值取消默认的行为.对象
$("form").bind("submit", function(event){ event.preventDefault(); });
语法 :
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 事件
语法 :
trigger(type,data);
解释 : 在每个匹配的元素上触发某类事件,它触发的是由 bind() 注册的自定义事件.
type(String) : 要触发的事件类型.
data(Array) : (可选)传递给事件处理函数的附加参数.
示例 :
给一个按钮添加自定义事件
$("button").bind('myClick',function(ev,a,b)) { // 给按钮 button 添加自定义事件 myClick 事件 }
而后经过 trigger() 触发自定义事件
$('button').trigger('myClick',[1,2])
语法 :
one(type,data,fn)
解释 : 为每个匹配元素的特定事件(好比 click ) 绑定一个一次性的事件处理函数,在每一个对象上,这个事件处理函数只会被执行一次,其余规则与 bind() 函数相同.
type(String) : 事件类型
data(Object) : (可选) 做为event.data属性值传递给事件对象的额外数据对象.
fn(Function) : 绑定到每一个匹配元素的事件上面的处理函数.
示例 :
当全部段落被第一个点击的时候,显示所其文本.
$("p").one("click", function() { // 只有第一次点击的时候才会触发,再次点击不会触发了. alert($(this).text() ); });
在点击按钮的时候,会出现双击的时候会有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>