我想在发生mousedown事件时在鼠标下方(手指模拟触摸屏)显示图像,并在鼠标事件发生时隐藏它,但是当我这样做时,我显示的图像会阻止后续鼠标事件(特别是“点击”)此图像下的元素。顺便说一下,我正在使用jQuery。
我确定这与事件冒泡或传播或某种程度有关,但我无法弄明白。有什么指示吗?
答案 0 :(得分:32)
在这篇文章中查看此答案:
https://stackoverflow.com/a/4839672/589909
似乎使用纯粹的跨浏览器CSS方法做我理解你想要实现的目标。
pointer-events:none;
答案 1 :(得分:15)
$('#finger').click(function(e){
evt = e || window.event;
// make finger disappear
$('#finger').hide(0);
// get element at point of click
starter = document.elementFromPoint(evt.clientX, evt.clientY);
// send click to element at finger point
$(starter).click();
// bring back the finger
$('#finger').show(0);
});
答案 2 :(得分:2)
这是未经测试的 - 但是基于我的工作脚本,因此应该沿着正确的方向行进。基本上,你必须使那个方式的图层暂时消失,这样你就可以使用elementFromPoint方法,然后让它回来。
$('.selector').click(function(e){
evt = e || window.event;
// make finger disappear
$('.finger').css({display:'none'});
// get element at point of click
starter = document.elementFromPoint(evt.clientX, evt.clientY);
// send click to element at finger point
$(starter).click();
// bring back the finger
$('.finger').css({display:''});
});
答案 3 :(得分:0)
你可以这样做
$(document).bind('mousedown mouseup', function() {
$('.finger').toggle();
});