IE 11不在SVG Map上触发Mouseenter或Mouseleave事件

时间:2016-05-03 20:36:55

标签: javascript jquery css internet-explorer svg

我已经在这2天里苦苦挣扎,已经阅读(并尝试过)更多' hacks'我无法想象,我所做的一切似乎都无法发挥作用。

我有一张美国的SVG地图,有一些用于mouseenter和mouseleave的jQuery事件在IE 11(我假设9& 10)忽略的其他浏览器中运行良好。

当进入州的边界时,填充应该改变(在FF中尝试)并且应该显示工具提示(并按照鼠标)。他们再次在其他浏览器中工作正常,但IE只是忽略它们。我尝试了一个mouseover事件只是为了看它是否有用而且确实如此。 IE也正确地处理了点击功能,但这两个只是炸弹。

您可以在http://amgoa.org/State-Gun-Laws看到http://amgoa.org/scripts/reciprocity.js页面{{3}}

这是JS的片段:

$('.state').mouseenter(function()   {

    if (!state_selected)    {
        $(this).css('fill', '#c8b33b');
        }

    if (strpos($(this).attr('id'), 'R_') === false) {

        $('#state_label').text($(this).attr('alt')).show();

        $(document).mousemove(function(e)   {

            $('#state_label').css({
                left: e.pageX - 55,
                top: e.pageY + 20
               });

            });

        }
    else if (state_selected)    {
        $('#state_label').text('').hide();
        }

    });

$('.state').mouseleave(function()   {
    if (!state_selected)    {
        $('#state_label').text('').css('display', 'none');
        $(this).css('fill', '#001a8b');
        }
    });

任何帮助都会得到真正的赞赏,因为这会使用类似的地图在这个网站上占据一个更大的项目,这个页面上的失败不是世界末日,而是另一个是关键任务它有效。

1 个答案:

答案 0 :(得分:2)

发现问题,这是我使用的jQuery版本中的一个错误。更新了版本,问题就消失了