我已经为此奋斗了两天,阅读(并尝试)了比我想象的更多的“黑客”,但我所做的似乎都不起作用。
我有一张美国的 SVG map ,mouseenter 和 mouseleave 的 jQuery 事件在 IE 11(我假设 9 和 10)忽略的其他浏览器中工作正常。
当进入一个州的边界时,填充应该改变(在FF中尝试)并且应该显示一个工具提示(并跟随鼠标)。同样,它们在其他浏览器中工作正常,但 IE 只是忽略它们。我尝试了鼠标悬停事件只是为了看看它是否有效并且确实有效。 IE 也可以正确地处理点击功能,但其他两个只是炸弹。
您可以在http://amgoa.org/State-Gun-Laws查看页面JS 位于 http://amgoa.org/scripts/reciprocity.js
这是 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');
}
});
任何帮助将不胜感激,因为这正在使用类似的 map 阻碍该网站上的一个更大的元素,该页面上的失败并不是世界末日,但在另一个页面上,它的工作至关重要.
最佳答案
发现问题了,这是我使用的 jQuery 版本中的一个错误。更新版本,问题消失了
关于javascript - IE 11 未在 SVG map 上触发 Mouseenter 或 Mouseleave 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013908/