bind(eventType[,data],hanlder):eventType表示要创建的处理器指定事件类型的名称。可以使用空格分隔的列表指定多个事件类型。data(对象)调用者提供的数据,用来附加到Event实例的data属性,以便为处理器函数所使用。 也可以仅传入选项对象参数。
$('.whatever').bind(
click:function(event){},
mouseover:function(event){},
mouseleave:function(event){}
});
one(eventType[,data],listener)
unbind(eventType[,listener]):listener为函数引用,如果仅提供函数作为匿名的内联引用,那么在随后调用unbind()时就不可能引用此函数了。不带参数,则会解绑jQuery对象中所有元素(所有事件类型的)所有事件处理程序。也可以仅传入选项对象参数。
//也可以解绑定特定命名空间下的事件
$('sel').unbind('.fred');
$('a').unbind('mouseover mouseout');
$('a').unbind({
mouseover:mouseoverHandler,
mouseout:mouseoutHandler
});
jQuery.Event属性和方法:
属性 | |
currentTarget | 冒泡阶段的当前元素。它和事件处理器中函数上下文对象是同一个对象。 |
data | 如果有值,在创建处理器时,将其作为第二个参数传入bind()方法 |
pageX、pageY | 对于鼠标事件,指定触发事件时光标相对于页面原点的水平、垂直坐标 |
screenX、screenY | 对于鼠标事件,指定触发事件时光标相对于屏幕原点的水平、垂直坐标 |
result | 从前面的事件处理器返回的最近的非undefined的值 |
target | 找出触发事件的元素 |
type | 为所有的事件指定触发的事件类型(例如click)。如果使用一个事件处理器处理多个事件,那么会非常有用。 |
| |
方法 | |
preventDefault() | 阻止任意默认的语义动作(比如表单提交、链接重定向、复选框状态的改变等)发生 |
stopPropagation() | 停止事件沿着DOM树向上进一步传播。当前目标元素上附加的事件不受影响。不仅支持浏览器定义的事件,而且支持自定义事件。 |
stopImmediatePropagation() | 停止所有事件的进一步传播,包括附加在当前目标元素上的事件。 |
live(eventType[,data],listener):当指定类型的事件在元素(任何用来创建包装集的与选择器相匹配的元素)上发生时,会将传入的监听器作为处理器调用,而无论在调用live方法时这些元素是否已经存在。
如果被调用的包装集指定了一个上下文,它必须在调用live()时已经存在。不能在其他的某个对象上调用live(),而不是选择器。如:$('img').closest('div').live(...);
die(eventType,listener):删除由live()创建的“live”事件处理器,并且阻止在将来创建的元素上调用处理器,这些元素是与调用live()时使用的选择器相匹配的元素。
trigger(eventType[,data]):在所有匹配元素上调用为传入的事件类型创建的处理器,在事件类型后面加“!”可以阻止命名空间事件的触发。在传入的字符串中不能指定多个事件类型。
//button1的单击处理程序触发button2上的相同事件
$('#button1').click(function(e){$('#button2').trigger(e);});
//触发事件时,添加额外的属性给事件对象
$('#button1').trigger({type:'click',synthetic:true});
//该处理程序检测额外属性来区分是真实事件还是虚假事件
$('#button1').click(function(e){if(e.synthetic){...};});
//通过手动触发事件,给事件处理程序传递额外数据
$('#button1').trigger('click',true); //传入单一额外参数
$('#button1').trigger('click',[x,y,z]); //传入三个额外参数
triggerHandler(eventType[,data]):不会冒泡、不会执行语义动作,也不会触发“live”事件。
jQuery还提供了便捷方法来触发大部分的事件类型。如blur()、change()、click()、keyup()、submit()……
toggle()
hover(enterHanlder,leaveHandler):可以仅指定一个参数函数,那么鼠标移入和移出都会调用它。
注:可以给处理程序分配多个命名空间。
//在命名空间“myMod”和“yourMod”中作为mouseout处理程序绑定f
$('a').bind('mouseout.myMod.yourMod',f);
代码片段集
暂无