事件穿透

<div class="wrap">
<table>
<tr><td>a</td><td>b</td></tr>
</table>
<canvas id="canvas"></canvas>
</div>
<style>
.wrap {
	position: relative;
	width: 1600px;
}
.wrap table {
	width: 100%;
}
#canvas {
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: none;
}
</style>

ie11、firefox、chrome等现代浏览器

只需要将上层元素添加css样式

pointer-events: none;

兼容ie老版本的方法:

if(navigator.appName == "Microsoft Internet Explorer"&&parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))<=9){
    $('#canvas').on('click', function (event) {
        var x = event.clientX;
        var y = event.clientY;
        var e = jQuery.Event(event.type, { pageX: x, pageY:y });
        $("table td").each(function(){
            var tx = $(this).offset().left;
            var ty = $(this).offset().top;
            var tx1 = tx + $(this).width();
            var ty1 = ty + $(this).height();
            if(x>=tx && x<= tx1 && y>=ty && y<=ty1){
                $(this).trigger(e);
                return false;
            }
        });
    });
}
$('table').on('click', 'td', function () {
   alert("底层元素点击事件被触发了")
});

转载于:https://my.oschina.net/u/232595/blog/1630137

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值