Click事件不会触发CSS指针事件:无

时间:2012-10-24 15:18:12

标签: jquery css css3

我有两个图像堆叠在一起。 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>

1 个答案:

答案 0 :(得分:3)

这是因为在javascript事件中冒出了DOM。 img_bttomimg_top的兄弟姐妹,所以事件永远不会冒泡到它。

您可以手动强制它:

$("#img_top").click(function(event) {
    $("#img_botton").trigger(event);
})