框架中的HTML DOM Event 对象

时间:2023-03-09 20:15:36
框架中的HTML DOM Event 对象

js中的this上下文会因事件而转换成html dom对象。

所以就有这样获取当前触发事件的dom对象:

 window.event.srcElement || window.event.target;
var e = window.event || e;
var srcElement = e.srcElement || e.target;
var id=srcElement.id.split("_")[];//不采用闭包的话就只能手动加id了

jquery的话,就$('this')

但是在MVC的工程内部,比如事件对象是evt:

evt.srcElement (IE支持,对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。)

evt.target (返回触发此事件的元素)

evt.currentTarget(返回其事件监听器触发该事件的元素,在捕获和起泡阶段,该属性是非常有用的,因为在这两个节点,它不同于 target 属性。)

evt.bubbles(指示是否起泡事件类型)

有趣的是,在appframework中如果采用的是on方法,事件委托给父级节点,那么srcElement,target,currentTarget全都指向了该父节点,而不会指向实际触发事件的子元素。

照理说,target应该是指向事件的目标节点,应该返回真正触发事件的子元素。

一般在事件绑定的时候指定的回调函数里面就可以接收这个e参数,

比如:

itu.event.on($el.find(me.PIC), "tap", me.picTrigger, me);

picTrigger : function(e){
  var me = this,$el = me.$element;
  var id = $(event.target).data("id");
  $el.trigger("reviewList",id);
}

这样就可以获取PIC元素的自定义属性data-id值

相关文章