标签:style blog io color ar os 使用 sp 数据
将一个函数实例的引用赋值给DOM元素的属性
$(‘#example‘)[0].onmouseover = function(event) { say(‘Crackle!‘); };
通过HTML特性声明处理器时会自动创建一个将特性值作为函数体的匿名函数。
element.onmouseover = function(event) {
say(‘hi‘); //<img onmouseover=say(‘hi‘)>
}
event实例属性提供关于当前被处理的已触发事件的信息,如哪个元素触发的事件、鼠标事件的坐标和键盘事件按了哪个键盘。event和window.event
获取目标元素:event.target和event.srcElement
目标元素有机会处理事件后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器。如果是就调用已创建的处理器,之后检查父元素直到DOM树的顶部。它允许我们在任何层级的元素创建处理器,以便处理发生在后代元素的事件。
标准浏览器调用event的stopPropagation(),IE设置cancelBubble的值为true。可以对表单控件验证,检测到数据输入有问题返回false。
DOM第2级事件处理器(也成为监听器)通过元素方法创建。每个元素都定义一个名为addEventListener()的方法
addEventListener(eventType,listener,useCapture)
eventType:获取要处理的事件类型,如click、mouseover、keydown
listener:函数引用,在元素创建指定事件类型的处理器,event实例是传入这个函数的第一个参数
useCapture:布尔类型,true为捕获处理器,false为冒泡处理器
在同一元素为同一事件类型创建多个事件处理器,触发顺序是随机的。
$(function(){
var element = $(‘#example‘)[0];
element.addEventListener(‘click‘,function(event) {
say(‘BOOM once!‘);
},false);
});
捕获阶段:触发事件似,事件先从DOM数的根部向下传播到目标元素。
捕获处理器会在捕获阶段触发事件
IE9之后才支持DOM第2级事件模型
attachEvent(eventName,handler)
eventName:字符串,指定事件类型的名称,采用DOM第0级的属性如onclick
handler:需要创建的函数event实例要用window.event获取。
bind(eventType, data, handler)
eventType:可以使用空格分隔的列表指定多个事件类型,通过在事件名称的后面添加圆点的后缀指定命名空间。
data:数据,附加到event实例的data属性,省略则指定第二个参数为处理器函数
$(‘#example‘) .bind(‘click‘,function(event) { say(‘BOOM once!‘); });
用命名空间对事件处理器分组
//为事件名称添加圆点分隔的后缀指定 $(‘thing1‘).bind(‘click.editMode‘,someListener); $(‘thing2‘).bind(‘click.editMode‘,someOtherListener); //删除 $(‘*‘).unbind(‘click.editMode‘);
bind(eventMap):允许一次创建多个事件类型的处理器,属性的名称指定事件类型,属性的值提供处理器。
$(‘.what‘).bind({ click: function(event){}, mouseover: function(event) });
one(eventType, data, listener):创建函数作为匹配集元素的事件处理器,执行完毕后自动删除。
unbind(eventType,listener, event)
Event实例
属性: altKey ctrlKey currentTarget data metaKey pageX pageY relatedTarget screenX screenY shiftKey result target timestamp type which
方法:preventDefault() stopPropagation() stopImmediatePropagation() isDefaultPrevented() isPropagationStopped() isImmediatePropagationStopped()
预先为还不存在的元素创建事件处理器
jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理事件绑定
//live(event,data,listerner) 只能用于选择器,不能用于衍生出来的包装集 $(‘img‘).closet(‘div‘).live()不合法 删除die(eventType,listener)
on(events,[selector],[data],listener) 当第二个参数‘selector‘为null时,on()和bind()其实在用法上基本上没有任何区别了
在脚本控制下触发处理器的执行,可以将这样的处理器定义为顶级函数,但事件处理器定义为内联的匿名函数更常用。将事件处理器作为函数调用不会触发语义动作,也不会冒泡
trigger(eventType, data):在所有匹配元素调用为传入的事件类型创建的处理器 返回包装集
data:作为第二个参数传入处理器的顺序(第一个是event)
triggerHander(eventType, data):在所有匹配元素调用为出阿奴事件类型创建的处理器 不会冒泡,不会执行语义动作,不会触发live事件
toggle(listener1,listener2):将传入的函数创建为包装集所有元素的单击事件处理器的循环列表。当到达列表最后一个处理器,第一个处理器是下次要调用的处理器。
常见用途:根据元素被单击的次数切换元素的状态。
hover(enterHander,leaveHander): enterHander——函数要成为mouseenter处理器的函数
leaveHander——函数要成为mouseleave处理器的函数
hover(handler) handler——mouseenter和mouseleave事件发生时都会调用的单个处理器
为匹配元素创建mouseenter和mouseleave事件处理器。它们只在鼠标进入或离开覆盖区域触发,忽略移动到子元素的转变。
标签:style blog io color ar os 使用 sp 数据
原文地址:http://www.cnblogs.com/surahe/p/4085006.html