深入理解jQuery事件绑定机制

对于只需要触发一次,随后就立即解绑的情况,jQuery提供了一种方法,one(),语法结构与bind相同。

trigger(“click”)可以简化成click()trigger还可以可以触发自定义名称的事件。例如,先用bind(“myClick”,function(){})给元素绑定一个自定义的myClick事件,然后用trigger(“myClick”)就可以触发该事件。

$("button").one("click",function(){

console.log("one");

//$("input").trigger("focus");

//既会触发input上绑定的onfus事件,如下,又会触发浏览器默认操作,即将焦点移到input上。

$("input").triggerHandler("focus");

//只会触发input上绑定的onfus事件,不会执行浏览器默认操作。

})

$("input").focus(function(){

console.log("input");

})

$("div").bind("mouseover mouseout",function(){

//绑定多个事件

$(this).toggleClass("color");

})

//在绑定的事件名称后面添加命名空间,便于统一管理

$('div').bind("click.plugin",function(){

console.log('click has a name!');

})

$('div').bind("mouseover.plugin",function(){

console.log('mouseover div');

})

$('div').bind("click",function(){

console.log('click has not a name!’);

})

$("button").click(function(){

$("div").unbind(".plugin");

})

$("button").eq(1).click(function(){

$("div").trigger("click!");

//感叹号的意思是匹配所有不在命名规范下的click事件

})

原文地址:https://www.cnblogs.com/yunkehe/p/4093456.html