jq事件委托和this指向

使用情境:

对ajax返回的未来元素进行事件绑定, 需要利用冒泡机制, 进行事件委托.
并使用e.target 获取目标元素

使用语法

假设通过ajax返回了tr数据, 需要对tr绑定 click 事件, 直接使用click(function(){}) 或者 on('click', function(){}) 达不到效果, 需要将click事件委托到已经存在的父级或者更高一级的dom元素上.(利用了冒泡机制)

$('tbody').on('click',tr,function(e){
    // console.log($(this)) // tbody
    // console.log(e.target) // td (假如有td), 注意这已经不是jq对象了
    console.log($(e.target).parent('tr')) //tr
}

补充

  • 事件参数 e

      function(e){
        // 兼容低版本需要加上 e || window.event; (不过现在一般也没必要)
       // 指向当前发生的事件, 比如 click , mouseover
      }
    
  • 触发事件的对象的引用: e.target: 指向触发事件监听的对象(可以参考上面代码)

  • e.currentTarget 指向添加监听事件的对象

你可能感兴趣的:(jq事件委托和this指向)