2013-01-05 11 views
5

Proszę, wybacz mi z góry, że jesteś idiotą.IE10 nie obsługuje klikania zdarzeń | Pomoc przy użyciu MSPointer

W każdym razie, próbuję zrobić moją grę html5 na IE10, , ale nie wykrywa ona moich kliknięć.

Więc badania tego trochę i okaże się, że zamiast zrozumienia, co to znaczy:

document.getElementById("answer1").addEventListener("click", wrong, false);

Jeśli trzeba użyć trochę brzydko zastrzeżonego kodu. Ponieważ jestem niestabilnym noobem, mam problemy z implementacją tego .

Oto co mam obecnie

document.getElementById("answer1").addEventListener("click", wrong, false); 
    document.getElementById("answer2").addEventListener("click", wrong, false); 
    document.getElementById("answer3").addEventListener("click", wrong, false); 
    document.getElementById("answer4").addEventListener("click", wrong, false); 
    //Stupid IE10 Crap 
    if (window.navigator.msPointerEnabled) { 
     document.getElementById("answer1").addEventListener("MSPointerDown", wrong, false); 
     document.getElementById("answer2").addEventListener("MSPointerDown", wrong, false); 
     document.getElementById("answer3").addEventListener("MSPointerDown", wrong, false); 
     document.getElementById("answer4").addEventListener("MSPointerDown", wrong, false); 
    } 

Kiedy uruchomić kod na IE10, to nadal nie rejestruje moje kliknięć myszką. Czy brakuje mi czegoś lub robię coś niepoprawnie?

Proszę, pomóż mi.

+0

Czy masz link do wersji demo? IE obsługuje zdarzenia kliknięć, więc nie powinieneś potrzebować MSPointerDown. –

Odpowiedz

8

Cóż, nie wiem, dlaczego nie działało. Nadal nie działa.

Ale znalazłem obejście, o którym myślałem, że się podzielę. Dodałem następujące atrybuty do CSS docelowych DIV.

background-color:#FFFFFF; opacity:0;

Z jakiegoś powodu, jeśli dam DIV kolor tła i uczynić je całkowicie przezroczysty, kliknie zarejestrować.

Na razie skończyłem dbać o ten problem.

Mam nadzieję, że to pomoże komuś.

+3

WOW! To najbardziej absurdalna sugestia, jaką słyszałem. Mimo to zadziałało i tylko zaoszczędziło mi (jeszcze więcej) godzin próbowania wyjaśnienia, dlaczego moje elementy interfejsu JQuery nie były przeciągalne w IE9 i 10. Brilliant. Wielkie dzięki za udostępnienie !!! –

+6

@ Donzo- Ja też wpadłem na to. Ale pamiętaj, że ustawienie 'opacity: 0' sprawi, że * wszystko w twoim div stanie się przezroczyste *! To nie jest to, czego chcesz. Zamiast tego ustaw przezroczystość * wewnątrz * koloru tła w następujący sposób: 'background-color: rgba (255,255,255,0);'. Zobacz [tutaj] (http://www.css3.info/introduction-opacity-rgba/), aby uzyskać więcej informacji. – Yarin

3

Na każdy z tych elementów, należy dodać styl css -ms-touch-action: none;

IE10 zdaje się spodziewać, że na elementach chcesz wydarzenia wskaźnik do interakcji z, tak, że nie starają się zachować domyślne zachowanie przeglądarki.

Powiązane problemy