首页 > .on()中function(event)为什么event监听的不是指定的DOM?

.on()中function(event)为什么event监听的不是指定的DOM?

    $("#post-buy-table").on("click", 'tr:gt(0)', function(event){
        alert(event.target.tagName);
    })

这里执行后alert应该是tr吧,执行后为什么是td?怎样给tr绑定事件?


简单来说,你的event.target改成event.currentTarget才正确

https://www.google.com.hk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=currentTarget%20target


因为事件是从 td 点击开始冒上来的,直接被 #post-buy-table 抓住,并分析出来冒的过程中经过了 tr

jQuery 对 event.target 的解释是

The DOM element that initiated the event.

所以显示出来提 TD

想取得 TR 可以用 this,也可以用 event.currentTaget

alert(this.tagName);
alert(event.currentTaget.tagName);
// jQuery 的习惯用法是:
// alert($(this).get(0).tagName);
// 或者 $(this).get(0).prop("tagName");
【热门文章】
【热门文章】