为什么游标、不透明属性和onclick事件处理程序在IE9上不起作用

Why cursor, opacity property and onclick event handler not work on IE9

本文关键字:程序 IE9 不起作用 事件处理 onclick 游标 不透明 属性 为什么      更新时间:2023-09-26

我想在图像中创建一个部分,当我点击时,它会提醒hi。我知道有很多方法可以在图像上创建部分,但我希望这样。opacity属性和cursor属性似乎在IE9上不起作用,因为当我将鼠标悬停在该区域时,它不会显示指针光标,当我单击该部分时,它也不会发出hi警报。但这在其他浏览器上运行良好。有人能解释为什么会发生这种事吗?

$(window).load(function () {
  var myImg = document.getElementById("myImg");
  var myDiv = document.createElement("div");
  myDiv.style.position = "absolute";
  myDiv.style.width = "200px";
  myDiv.style.height = "200px";
  myDiv.style.top = "20px";
  myDiv.style.left = "20px";
  myDiv.style.position = "absolute";
  myDiv.style.cursor = "pointer";
  myDiv.style.border = "2px solid red";
  myDiv.style.opacity = 0.3;
  document.body.appendChild(myDiv);
  myDiv.onclick = function () {
    alert("hi");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<img id="myImg" src="http://myartzine.com/wp-content/uploads/2013/10/Gtelaviv_05.jpg">

对于游标,我必须告诉您,唯一的跨浏览器语法是:

element {
    cursor: pointer;
    cursor: hand;
}

还有一些关于光标的更多信息:

在过去,手的价值是微软说指针的方式;和IE 5.0和5.5仅支持手动操作。因为是光标值最常用的,大多数其他浏览器还实施了手工操作。

由于IE 6和7支持指针,没有更多的理由用手,除非旧的IE是您的目标受众。

对于不透明度,IE 9接受

    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";

检查http://css-tricks.com/css-transparency-settings-for-all-broswers/

对于onClick事件处理程序,我认为

默认情况下,在IE9中,"Internet选项">"安全选项卡">"Internet">"自定义级别",向下滚动到"脚本"部分(底部附近),并且在"活动脚本"中处于禁用状态,因此请勾选"启用"。而且,这解决了问题,onclick有效!!。

IE不支持游标属性的指针值。你应该使用这个:
myDiv.style.cursor='hand';

在IE中,不透明度的值在0到100之间。所以设置如下:

myDiv.style.opacity=30;

毕竟,我认为你可以很容易地使用jquery来完成这些任务。

$('<div></div>').css({'cursor':'pointer', 'cursor':'hand', 'opacity':'30'}).click(function(){
    alert('hi');
})