【发布时间】:2014-01-19 01:43:54
【问题描述】:
如何获取作为(e)传递的元素的ID?
window.addEventListener('load', function(){
var tags = document.getElementsByClassName("tag");
for (i=0; i<tags.length; i++){
tags[i].addEventListener('mousedown', function(e){ tagClick(e) }, false);
}
}, false);
function tagClick(e){
/* here I'm gonna need the event to cancel the bubble and the ID to work with it*/
alert('The id of the element you clicked: ' + [?object].id);
[?object].className='newClass';
e.stopPropagation();
e.cancelBubble = true;
}
我需要在 tagClick 中获取元素/对象,以便更改其属性
html:
<div class="tag">
<img src="/images/tags/sample.jpg"/>
<label class="tagLabel">Sample</label>
</div>
看,附加事件的元素是 div,但是在使用 e.srcElement 时,ig 给了我图像对象。
【问题讨论】:
-
您为什么不使用 jQuery?所有这些令人头疼的事情都可以用一行 jQuery 写出来。
-
@ShadowWizard 因为jQuery is bloody slow?在我的项目中,我也可以在一行中编写一个委托事件处理程序,因为我创建了一个非常具体的函数来完成这项工作。
addDelegatedEvent(document.body,function(t) {return r.nodeName == "TAG";},"click",function(e) {alert(e.target.id);}); -
@NiettheDarkAbsol 浏览器兼容性如何?这也是使用 jQuery 的主要原因。无论如何,我们不要向这个问题发送垃圾邮件,这些东西都有聊天室。 :)
-
@ShadowWizard
addDelegatedEvent为我做了浏览器兼容性,因为我将它编程为 ;) -
@ShadowWizard 当我学习完 JavaScript 之后,我将使用 JQuery :)
标签: javascript events