1

我有两张图像堆叠在一起。img_top设置了 'pointer-events: none',所以点击它会将点击传递给img_bottom. 但是,如果我调用 jQuery 的trigger('click')on img_top,点击将不会传递到img_bottom.

trigger('click')任何人都可以解释为什么并找到一种使用 jQuery和 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>
4

1 回答 1

3

这是因为在 javascript 事件中,DOM 会冒泡。img_bttom是 的兄弟img_top,所以事件永远不会冒泡。

您可以手动强制它:

$("#img_top").click(function(event) {
    $("#img_botton").trigger(event);
})
于 2012-10-24T15:22:25.093 回答