2016-05-03 4 views
2

Ich habe mit diesem seit 2 Tagen jetzt gekämpft und habe mehr "Hacks" gelesen, als ich mir vorstellen kann und nichts, das ich tue, scheint zu arbeiten.IE 11 Not Firing Mouseenter oder Mouseleave Ereignisse auf SVG Karte

Ich habe eine SVG-Karte der USA, es gibt jQuery-Ereignisse für mouseenter und mouseleave, die in anderen Browsern funktionieren, IE 11 (und ich nehme an 9 & 10) ignorieren.

Beim Eingeben der Grenze eines Staates sollte sich die Füllung ändern (versuchen Sie es in FF) und ein Tooltipp sollte erscheinen (und folgen Sie der Maus). Wieder funktionieren sie gut in anderen Browsern aber IE ignoriert sie einfach. Ich habe ein mouseover-Ereignis versucht, nur um zu sehen, ob es funktioniert und es getan hat. IE funktioniert auch korrekt auf die Click-Funktion, aber diese anderen beiden nur Bombe.

Sie die Seite bei http://amgoa.org/State-Gun-Laws sehen die JS ist bei http://amgoa.org/scripts/reciprocity.js

Hier ist ein Ausschnitt des 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'); 
     } 
    }); 

Jede Hilfe wirklich, da dies würde geschätzt wird ein größeres Projekt zu diesem Thema hält Website mit einer ähnlichen Karte, dieser Fehler auf dieser Seite ist nicht das Ende der Welt, aber auf der anderen Seite ist es Mission kritisch, dass es funktioniert.

+0

Ich sollte auch hinzufügen, dass es ein Hack verwendet wird, so dass die Karte im IE richtig skaliert mit einem übergeordneten Container mit Auffüllen und dann "Schieben" die Karte mit absoluter Positionierung. –

Antwort

2

Das Problem gefunden, es war ein Fehler in der jQuery-Version, die ich verwendete. Aktualisiert die Version und das Problem ist weg

Verwandte Themen