jQuery事件笔记

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);

代码片段集

暂无

上一篇:memset与malloc性能测试


下一篇:线性表(gcc实现)