1
我有兩個圖像堆疊在一起。 img_top
有'pointer-events:none'設置,因此點擊它會將點擊傳遞給img_bottom
。但是,如果我調用img_top
上的jQuery的trigger('click')
,則點擊不會傳遞到img_bottom
。點擊事件不觸發CSS指針事件:無
任何人都可以解釋爲什麼,並找到一種方法,使用jQuery的trigger('click')
和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>
這工作正常,但爲什麼doea一個「真正的」點擊然後通過?以及如何模仿它? –
@AdrienHingert一個真正的點擊通過,因爲它是由瀏覽器的用戶界面處理的,該用戶界面查看鼠標位置並確定引發事件的正確元素。 –
有沒有什麼辦法可以通過JS來「僞造」它,這樣就可以按照上面的示例通過? –