Javascript Internet Explorer 8中的event.src元素为空
我们正在使用asp.net webforms。 服务器正在使用onclick事件生成输入元素映像。 当单击发生时,我调用函数并将事件对象传递给它 在该函数中,我试图访问event.srcmelement.className以获取导致事件的元素的类名。 只有在IE8中,事件的src元素为null 这个问题的可能解决办法是什么 在事件发生时调用的函数中,如何获取导致单击事件的元素的类名Javascript Internet Explorer 8中的event.src元素为空,javascript,internet-explorer,javascript-events,Javascript,Internet Explorer,Javascript Events,我们正在使用asp.net webforms。 服务器正在使用onclick事件生成输入元素映像。 当单击发生时,我调用函数并将事件对象传递给它 在该函数中,我试图访问event.srcmelement.className以获取导致事件的元素的类名。 只有在IE8中,事件的src元素为null 这个问题的可能解决办法是什么 在事件发生时调用的函数中,如何获取导致单击事件的元素的类名 选择的答案解决了我的问题,但没有回答问题 您可以使用jQuery库,它有助于解决跨浏览器问题。使用jQuery可以
选择的答案解决了我的问题,但没有回答问题 您可以使用jQuery库,它有助于解决跨浏览器问题。使用jQuery可以使用event.target及其所有属性。问题是不同浏览器之间的DOM API不一致 在jQuery中,您可以这样做:
$(selector).click(function(event){
console.log(event.target.className);
console.log(event.target.classList);
});
不使用事件,只需将单击的元素传递给javascript函数
<input type="button" onclick="func(this)" value="Ok" class="myClass"/>
然后直接访问元素的样式类
<script>
function func(elem) {
alert(elem.className);
}
</script>
由于某种原因,您确定srcelelement为null而不是event?例如,当事件发生时,没有正确地传递/处理事件对象?是的,我在IE8中对其进行了调试。事件对象在那里,但src元素为null。我使用事件对象计算鼠标光标位置的方式与jquery相同,因为内容是自动生成的,不能如此轻松地完成jquery的工作。我试图避免使用jquery来计算鼠标光标位置,因为内容是动态生成的,包括类名、onclick事件等。将来我将101%使用jquery来计算此类内容。在这种情况下,它不是那么简单,但在$document.ready中有一些额外的逻辑是可行的;和条件事件绑定。目前,我的解决方法是将生成的类名本身传递给被调用的函数,并忽略事件处理,因为我没有太多时间来完成这项工作。谢谢你的回答。jQuery可以而且会做你想做的一切,只是更好更快。我仍然不明白为什么会有人想使用原生domapi。它很糟糕,而且还会继续糟糕,因此直接使用它是不明智的,最好依赖JQueryTolly之类的库。忘记了这一点,我所做的是向函数调用添加额外的参数,并将元素动态生成的类名传递给该函数。谢谢你的回答。