我正在开发一个用例,在这个用例中,一旦用户检查/取消选中一个复选框,就需要采取一些操作。
示例:
函数片段:
<script>
function toggleAgreement(event) {
if(event.target == 'some pre-defined ID') {
//do action;
}
</script>问题:
这个功能在Firefox/Chrome中运行良好,即使在IE9中也是如此。就在IE-7/8中,它不起作用。
在观察IE脚本控制台时,这些错误显示在-> bodyOnload上(而不是当我触发这个特定的复选框时)。
"Object不支持属性或方法'querySelectorAll'“iframe.html,行x字符y
单击此链接时,我将看到以下内容:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>我研究并发现了Jquery应该使用的方式是:"document.querySelectorAll('.className')"
问题是,即使这个问题在IE9中普遍存在,为什么不抛出上面提到的错误呢?
发布于 2013-05-27 12:47:55
event.target与IE不兼容。试一试(它与跨浏览器兼容):
<script>
function toggleAgreement(event) {
var evt = e || window.event; // this assigns evt with the event object
var current = evt.target || evt.srcElement; // this assigns current with the event target
if(current == 'some pre-defined ID') {
//do action;
}
}
</script>发布于 2013-05-27 12:39:59
你可以使用jQuery吗?它使处理事件变得更加容易(对于早期IE版本支持来说,采用1.x版本是必不可少的)。有了jQuery,它就像:
$("#myCheckbox").click(function() {
if ($(this).is(":checked")) {
// Do whatever you want
}
});不再需要使用“事件目标”,单击的复选框在提供的"$(this)“对象中可用。但如果你需要的话,那就是可用。
https://stackoverflow.com/questions/16773344
复制相似问题