事件对象
开发工具与关键技术:
作者:唐文坚
撰写时间:2020.9.17
event.currentTarget:
在事件冒泡阶段中的当前DOM元素
jQuery 代码:
$(“p”).click(function(event) {
alert( event.currentTarget === this ); // true
});
event.data:
当前执行的处理器被绑定的时候,包含可选的数据传递给jQuery.fn.bind。
jQuery 代码:
$(“a”).each(function(i) {
$(this).bind(‘click’, {index:i}, function(e){
alert('my index is ’ + e.data.index);
});
});
event.delegateTarget:
当currently-called的jQuery事件处理程序附加元素。
此属性是最经常有用是通过过.delegate() 或.on()附加委派的事件,事件处理程序附加在正在处理的元素的祖先上。它可用于,例如,指明委派识别和删除事件处理程序。 This property is most often useful in delegated events attached by .delegate() or .on(), where the event handler is attached at an ancestor of the element being processed. It can be used, for example, to identify and remove event handlers at the delegation point.
对于非授权的事件处理程序,直接连接到一个元素,event.delegateTarget 总是等价于event.currentTarget
jQuery 代码:
$(".box").on(“click”, “button”, function(event) {
$(event.delegateTarget).css(“background-color”, “red”);});
event.isDefaultPrevented():
根据事件对象中是否调用过 event.preventDefault() 方法来返回一个布尔值,检测 event.preventDefault() 是否被调用过。
jQuery 代码:
$(“a”).click(function(event){
alert( event.isDefaultPrevented() ); // false
event.preventDefault();
alert( event.isDefaultPrevented() ); // true
});
event.isImmediatePropagationStopped():
根据事件对象中是否调用过 event.stopImmediatePropagation() 方法来返回一个布尔值。