Answers:
您需要使用event.targetwhich是最初触发事件的元素。在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事件对象的属性。