Answers:
您需要使用event.target
which是最初触发事件的元素。在this
您的示例代码指document
。
在jQuery中,就是...
$(document).click(function(event) {
var text = $(event.target).text();
});
没有jQuery ...
document.addEventListener('click', function(e) {
e = e || window.event;
var target = e.target || e.srcElement,
text = target.textContent || target.innerText;
}, false);
另外,请确保是否需要使用<IE9 attachEvent()
代替addEventListener()
。
if(event.target === myjQueryDivElement)
做:if(event.target.hasClass('mydivclass'))
mydivclass是我的元素具有的类。
|| target.innerText
吗?
在body标签内使用以下内容
<body onclick="theFunction(event)">
然后在javascript中使用以下功能获取ID
<script>
function theFunction(e)
{ alert(e.target.id);}
您可以在找到目标元素event.target
:
$(document).click(function(event) {
console.log($(event.target).text());
});
参考文献:
使用delegate
和event.target
。delegate
通过让一个元素侦听并处理子元素上的事件来利用事件冒泡。target
是对象的jQ归一化属性,event
表示事件源自的对象。
$(document).delegate('*', 'click', function (event) {
// event.target is the element
// $(event.target).text() gets its text
});
on()
应该提到的应该被推荐超过delegate()
。另外,document
可能是唯一不使用delegate()
/的例外,on()
因为它们一直冒泡到处理的最高点。
on
我无所适从。
delegate
确实有要考虑的过滤开销……
$(document).click(function (e) {
alert($(e.target).text());
});
target
事件对象的属性。