2013-05-15 4 views
6

Mam aplikację PhoneGap-iOS na iPada, na której użytkownik otrzyma okienko wylogowania, jak pokazano na rysunku poniżej.Phonegap jQuery event.target Nie działa

Logout popup

Chcę to okienko, aby ukryć, gdy użytkownik kliknie na ciele. Mój code, który działa w macierzystej przeglądarce, nie działa pod numerem pod numerem iPad Simulator.

$("body").ClickOrTouch(function (evt) { 
    if (!(evt.target.id == "launchUsername") { 
     $('#launchLogout').hide(); 
    } 
}); 
+0

Próbowałeś na prawdziwym urządzeniu iDevice? – Bigood

+0

Przetestowałem to również na prawdziwym urządzeniu. – Prasen

Odpowiedz

2

Może event.touches[0].target może to zrobić na telefon safari (Masz tablicę akcenty w celu zarządzania multitouch zdarzenia, jeden po palca). Jak omówiono w tym temacie: Mobile Safari - event.target in touch event

Ale myślę, że warto spróbować z jquery-ui-touch-punch.

To co mogę używać do zarządzania dotykowych zdarzenia z jQuery na telefon internetowej aplikacji (takich jak Cordova/PhoneGap)

bardzo prosta: po prostu dodanie tej biblioteki czyni każdy touh wydarzenie zachowują się jak zdarzenia myszy.

(dotknąć w dół/w górę => mysz w dół/w górę, jedno naciśnięcie => kliknij etc ...)

+0

Spróbuję użyć jquery-ui-touch-punch. Ale chciałem wiedzieć, co poszło nie tak z powyższym kodem, kiedy testuję go na iPadzie Simulator – Prasen

+0

hmm nie wiesz, czy jego "clickOrTouch" bez kapitału "C"? – Guian

+0

Zdarzenie ClickOrTouch zostanie wykonane. Tylko event.target pokazuje niezdefiniowane za każdym razem. – Prasen

1

próbowałeś jeszcze inną imprezę? może coś takiego?

$("body").on('touchend', function (evt) { 
    if (!(evt.target.id == "launchUsername") { 
     $('#launchLogout').hide(); 
    } 
}); 
2
$("body").on('touchend', function (evt) { 
    if (!(evt.target.id == "launchUsername") { 
     $('#launchLogout').hide(); 
    }else{ 
evt.stopPropagation(); 

} 


}); 
3

W iPhone, urządzenia iPad kliknij wydarzenie będzie działać w tagu zakotwiczenia nie tylko do znaczników div lub rozpiętości, więc spróbuj to będzie działać.

$("body").on('click touchend', function (evt) { 
    if (!(evt.target.id == "launchUsername") { 
    $('#launchLogout').hide(); 
    } 
}); 
+0

Działa jak wdzięk dziękuję! –