2012-10-19 44 views
0

可能重复:
Handling click events on z-index’d layers禁用DIV与jQuery =点击量之下

我打了几次找到StackOverflow的答案对于这一点,但我尝试了所有的代码,并似乎没有上班。

我有一个div与透明度重叠,我需要点击下面的div。我如何禁用上面的div,但仍然保持在屏幕上?

我正在使用Firefox。

感谢 -Ed

下面是div的HTML

<div class="EduardoWhite"><img src="images/EduardoWhite.png" width="614" height="539" /> 

累这些和缥缈:

<script> 
$(document).ready(function() 
    { 

    $(".EduardoWhite").attr({ disabled: 'disabled' }); 


    $('.EduardoWhite').click(function(event) 
    { 
     $('.EduardoWhite').hide(); 



    }); 

    }); 

</script> 
+0

在这里发布html代码,至少我没有正确理解这个问题。 –

+0

“禁用div”是什么意思? – jtfairbank

+1

我假设顶部的'div'不需要底层'div'的孩子。所以即使传播可能不起作用。我可能会认为你可以找到点击的XY坐标并使用它 - 我个人会憎恶使用它作为解决方案! –

回答

2

这取决于你的目标浏览器,但如果IE ISN”一个问题,你可以使用指针事件。

喜欢的东西:

#overlapping-div { pointer-events: none } 

编辑 - 这里有一个的jsfiddle:http://jsfiddle.net/Eg4wz/

该元素的任何点击都将被忽略,让下面的元素接收事件。

MDN reference

Can I Use reference

+0

+1可能因为缺乏IE支持而无用,但很有趣。 –

+0

这听起来很有趣。 @Papa De Beau - 请让我们知道这是否适合你... –

+2

@dystroy - 我个人会给所有IE用户发送一条消息,告诉他们使用受IE浏览器和故障网站影响的备用浏览器。 IE未使用时,我的大学和.gov网站中有很多页面出现故障。 –

1

没有为“禁用”,如果它具有较高的z-index比它下面的股利股利没有标准的方式 - 点击事件将在最高的DIV总是发生。

您唯一的选择是移动div,使其不可见,或捕获点击事件,然后选择性地触发下面的div上的事件。 pointer-events CSS属性可能会有所帮助,但不受所有浏览器支持。

+1

要继续响应,并考虑第一个DIV“正常”,您可以将浮动DIV(绝对位置)放入“正常”位置(“正常”DIV可以具有位置相对于位置引用的位置)。通过这样做,浮动DIV上的单击事件将会冒泡,然后到达“正常”DIV容器。 – MatRt