我们正在使用 asp.net 网络表单。服务器正在使用 onclick 事件生成输入元素(图像)。当点击发生时,我正在调用函数并将事件对象传递给它。
在该函数内部,我试图访问 event.srcElement.className 以获取导致事件的元素的类名。仅在 IE8 事件的 srcElement 为空。
这个问题的可能解决方案是什么。
如何在事件发生时调用的函数中获取导致单击事件的元素的类名?
选择的答案解决了我的问题,但没有回答问题!
我们正在使用 asp.net 网络表单。服务器正在使用 onclick 事件生成输入元素(图像)。当点击发生时,我正在调用函数并将事件对象传递给它。
在该函数内部,我试图访问 event.srcElement.className 以获取导致事件的元素的类名。仅在 IE8 事件的 srcElement 为空。
这个问题的可能解决方案是什么。
如何在事件发生时调用的函数中获取导致单击事件的元素的类名?
选择的答案解决了我的问题,但没有回答问题!
而不是使用event
,只需将单击的元素传递给javascript
函数。
<input type="button" onclick="func(this)" value="Ok" class="myClass"/>
然后直接访问元素的样式类。
<script>
function func(elem) {
alert(elem.className);
}
</script>
您可以使用 jQuery 库来帮助解决跨浏览器问题。使用 jQuery,您可以使用 event.target 及其所有属性。问题在于各种浏览器之间的 DOM API 不一致。
在 jQuery 中,你可以这样做:
$(selector).click(function(event){
console.log(event.target.className);
console.log(event.target.classList);
});