(个人经验,仅供参考,错误之处,敬请谅解)
事件操作
一、鼠标事件
- click() 与dbclick()事件,点击与双击
- mousedown() 与 mouseup() 事件, 鼠标单击按下与松开
- mouseover() 与 mouseout() 事件,鼠标移进与移出
- mousemove() 事件,鼠标移动
- mouseenter() 与 mouseleave() 事件,与over、out不同点在于只对绑定的元素有效
- hover() 事件 ,enter 与 leave 的结合
- focusin() 与 focusout() 事件,得到和失去焦点
二、表单事件
- focus() 与 blur() 事件,触发时,父元素产生focusin() 和 focusout() 事件
- change() 事件,用于 input、select、textarea元素
- select() 事件,只用于select 和textarea 元素
- submit() 事件,监听提交,可以return false 阻止提交行为(e.preventDefault)
三、键盘事件
- keydown() 与 keyup() 事件,键盘按下与松开
- keypress() 事件,只能捕获单个字符,不能捕获组合键,无法响应系统功能键如(delete,backspace)不区分小键盘和主键盘的数字字符
四、事件绑定与解绑
- on() 绑定事件
$("#elem").on(‘click’,function(){}) 单事件绑定
$("#elem").on(“mouseover mouseout”,function(){ }); 多事件绑定同一函数
$("#elem").on({mouseover:function(){}, mouseout:function(){} });多事件绑定不同函数
也可以进行委托绑定:
$(‘body’).on(‘click’, ‘a’, function(e) {
alert(e.target.textContent)
})
- off() 事件,解除绑定 多事件以空格隔开,不加参数解绑所有事件
五、事件对象
- event.target 接受事件的目标元素(不可变,而this可变)
- event.type 事件类型
- event.pageX event.pageY 获取鼠标当前相对于页面的坐标
- event.preventDefault() 阻止默认行为
- event.stopPropagation() 阻止事件冒泡
- event.which
- event.currentTarget 冒泡中当前的元素
六、自定义事件
- trigger() 事件,根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为
$("button:first").click(function(event,bottonName) {
bottonName = bottonName || 'first';
update($("span:first"),$("span:last"),bottonName);
});
//通过自定义事件调用,更新次数
$("button:last").click(function() {
$("button:first").trigger('click','last');
});
function update(first,last,bottonName) {
first.text(bottonName);
var n = parseInt(last.text(), 10);
last.text(n + 1);
}
- triggerHandler() 事件
triggerHandler不会触发浏览器的默认行为,.triggerHandler( “submit” )将不会调用表单上的.submit()
.trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素
使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡。 如果它们不是由目标元素直接触发的,那么它就不会进行任何处理
与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回 undefined
2675

被折叠的 条评论
为什么被折叠?



