2012-01-20 11 views
5

Opracowałem aplikację internetową w asp.net 3.5. To zajmuje dużo zdarzeń javascript/JQuery i działa poprawnie w normalnej przeglądarce na komputerze, ale mój klient mówi, że nie działają one w tabletach/androidach i iPadzie. Tak jak mam listę rozwijaną, w której uruchamiam naciśnięcia klawiszy i kliknięcia myszą w javascript, a te działają doskonale w zwykłych przeglądarkach, muszę być w formie działającej w IPAD i tabletach z Androidem.Zdarzenia JavaScript nie działają w komputerze typu Tablet-PC?

+0

dobrze nie dostać wszystko za darmo (bez wysiłku), uważają, że na iPadzie i urządzeniach z Androidem Koncept kliknięcia i podwójnego kliknięcia jest inny niż na komputerze. Podczas gdy jQuery jest bardzo dobrym wyborem do obsługi programowania po stronie klienta w różnych przeglądarkach, zależy to od tego, jak go używasz. Sprawdź to dla szczegółów: http://stackoverflow.com/questions/475674/what-javascript-events-are-available-to-webkit-on-android –

+0

Myślę, że ten link jest przeznaczony tylko dla użytkowników Androida, ale mój target jest normalną przeglądarką Windows, tabletem i iPadem. –

Odpowiedz

4

Zdarzenia kliknięcia nie będą działać na iPadzie, ponieważ jest to ekran dotykowy - kliknij, aby dotknąć Zgaduję. Czy rozważyłeś użycie JQueryMobile zamiast JQuery? I jest zoptymalizowany pod kątem urządzeń dotykowych - jak stwierdza na samej stronie głównej witryny.

Zamiast używać kliknij posiada cały szereg events you can hook into czyli kranu, machnięcia, taphold etc ... Byłoby dość łatwo zahaczyć tę samą funkcję do kliknięcia i zdarzenie kranu tj

('myelement').bind('click', function(event){ 
    myClickFunction(); 
}); 

('myelement').bind('tap', function(event){ 
    myClickFunction(); 
}); 

Są prawdopodobnie (prawie na pewno) bardziej eleganckie sposoby na zrobienie tego - ale to dopiero początek.

+3

Możesz to zrobić: '$ ('myelement'). Bind ('click', myClickFunction) .bind ('tap', myClickFunction);' aby kod wyglądał ładnie –

+0

@AndrewJackman genialny - dobrze zrobiony sir –

+0

Dodałem nowa lista rozwijana tam i wystrzelił normalne zdarzenie z wybranegoIndexCHanged i działa. Ponieważ na ekranach dotykowych nie musimy wywoływać zdarzenia strzałki lewej lub strzałki w dół lub czegoś innego. Do tej pory czekam na mojego klienta. Mam nadzieję, że zadziała on również na jego komputerze, ponieważ działał na mojej maszynie. –

1

Istnieje dotykowe imprezy dla urządzeniu z ekranem dotykowym:

touchstart: a finger is placed on a DOM element. 
touchmove: a finger is dragged along a DOM element. 
touchend: a finger is removed from a DOM element. 

może chcesz spróbować pracy z nich. Biorąc to pod uwagę, dobrze jest używać zdarzeń takich jak change (lub onchange w linii z elementem) dla rozwijanej listy, ponieważ będzie działać bez względu na to, co to zmieni (klawiatura, mysz lub zdarzenie dotykowe).

Here to źródło informacji, aby dowiedzieć się więcej.

0

Można użyć kombinacji i spróbuj touchstart zamiast kranu

('myelement').bind('touchstart click', function(event){ 
    myClickFunction(); 
}); 
Powiązane problemy