Jquery “替代方案”;指针事件:无“;在IE里?

Jquery “替代方案”;指针事件:无“;在IE里?,jquery,internet-explorer,css,Jquery,Internet Explorer,Css,我有一个元素,它部分地覆盖了另一个元素 div元素有一个悬停状态,所以我应用了指针事件:无!重要的编码到span,以便当鼠标位于span覆盖的div部分上时,悬停状态保持活动状态 这在大多数浏览器中都很有效,但在IE中却不行:( 我尝试了几个jQuery建议,试图将悬停状态保持在div元素上 $("span").hover( function(){ $("div").hover(); } ); 在悬停跨度时,模拟悬停div 我也试过: $("span").hover(passT

我有一个元素
,它部分地覆盖了另一个元素

div元素有一个悬停状态,所以我应用了
指针事件:无!重要的编码到span,以便当鼠标位于span覆盖的div部分上时,悬停状态保持活动状态

这在大多数浏览器中都很有效,但在IE中却不行:(

我尝试了几个jQuery建议,试图将悬停状态保持在div元素上

$("span").hover(
  function(){
    $("div").hover();
  }
);
在悬停跨度时,模拟悬停div

我也试过:

$("span").hover(passThrough);

function passThrough(e) {
  console.log("going");
    $("div").each(function() {
       // check if hovered point (taken from event) is inside element
       var mouseX = e.pageX;
       var mouseY = e.pageY;
       var offset = $(this).offset();
       var width = $(this).width();
       var height = $(this).height();

       if (mouseX > offset.left && mouseX < offset.left+width 
           && mouseY > offset.top && mouseY < offset.top+height)
         $(this).hover(); // force hover event
    });
}
$(“span”)。悬停(直通);
函数传递(e){
控制台日志(“运行”);
$(“div”)。每个(函数(){
//检查悬停点(取自事件)是否在元素内部
var mouseX=e.pageX;
var mouseY=e.pageY;
var offset=$(this.offset();
var width=$(this.width();
var height=$(this.height();
如果(mouseX>offset.left&&mouseXoffset.top&&mouseY
(取自)例如:将鼠标悬停在跨度上时,如果鼠标在div上,则模拟悬停


你有什么好的建议吗?

好的,经过几个小时的到处寻找错误答案后,我终于把它修好了……而且也不太难

IE不支持与其他浏览器相同的
指针事件
。但是,它在以下情况下可以工作:

  • 边框元素。指针事件:无可用于 元素(即边框:5px solid#000;)。元素本身不会 让你点击它的后面,但是边框会被打开

  • SVG图像。格式为.SVG的图像或背景将支持指针事件:无

  • 在我的问题中,我将一个图像覆盖在一个菜单项上,以产生一种很酷的效果,如下所示

    简而言之,每个li元素都有一个底部边框。 跨距包含一个背景图像(以绿色突出显示-右上角为橙色,左下角为透明,两者之间有一条白线),位于ul的右侧。这会产生菜单倾斜25度的效果,但实际上它只是在图像下继续

    我不得不使用指针事件:无,因为当鼠标悬停在“我们的程序”上时,当鼠标移动到图像/span覆盖的li部分时,子菜单将消失

    将图像更改为.svg并使用指针事件:无允许此方法在IE上工作。大多数其他浏览器不需要.svg部分,但由于它们都支持文件类型,因此这不是问题