我有两个图像堆叠在一起。 img_top
设置了'pointer-events:none',因此点击它会将点击转到img_bottom
。但是,如果我在trigger('click')
上调用jQuery的img_top
,则点击不会转到img_bottom
。
任何人都可以解释原因并找到一种方法,使用jQuery的trigger('click')
AND CSS pointer-events
将点击传递到底部图像吗?
以下是我正在使用的代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<style type="text/css">
#img_holder {
position: relative;
width: 20px;
height: 20px;
}
#img_bottom {
position: absolute;
background: url('/images/cross.png');
width: 16px;
height: 16px;
z-index: 1;
}
#img_top {
pointer-events: none;
position: absolute;
background: url('/images/tick.png');
width: 16px;
height: 16px;
z-index: 2;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$(document).click(function() {
alert('clicked');
$("img_top").trigger('click');
});
$("#img_bottom").click(function() {
alert('success');
});
});
</script>
<div id="img_holder">
<div id="img_top"></div>
<div id="img_bottom"></div>
</div>
答案 0 :(得分:3)
这是因为在javascript事件中冒出了DOM。 img_bttom
是img_top
的兄弟姐妹,所以事件永远不会冒泡到它。
您可以手动强制它:
$("#img_top").click(function(event) {
$("#img_botton").trigger(event);
})