HTML / CSS:让一个div“隐身”点击?

由于各种原因,我需要在某些文本上放置(大部分)透明的<div> 。 但是,这意味着文本不能被点击(例如,点击链接或select它)。 是否有可能简单地使这个div“隐身”点击和其他鼠标事件?

例如, overlay div覆盖文字,但我希望能够通过overlay div点击/select文本:

 <div id="container"> <p>Some text</p> <div id="overlay" style="position: absolute; top: 0; left: 0; width: 100%; height:100%"> ... some content ... </div> </div> 

可以使用CSS pointer-events 。 此属性在Firefox 3.6 +,Chrome 2+,IE 11+和Safari 4+中受支持。 不幸的是,我不知道跨浏览器的解决方法。

 #overlay { pointer-events: none; } 

暂时隐藏叠加层后,可以通过重新引发该事件来完成。

看到这个问题的第一个答案: HTML“覆盖”,它允许点击落在它后面的元素

你可以通过隐藏覆盖图来做到这一点:

 overlay.onclick = function(){ window.event.srcElement.style.visibility = "hidden"; var BottomElement = document.elementFromPoint((navigator.appName.substring(0,3) == "Net") ? e.clientX : window.event.x,(navigator.appName.substring(0,3) == "Net") ? e.clientY : window.event.y); window.event.srcElement.style.visibility = "visible"; BottomElement.click(); } 

禁用div上的所有事件(或小鸡)的替代方法是unbind()默认情况下附带标记的所有事件

  $('#myDivId').unbind(); 

要么

  $('#myDivId').unbind("click");