2013-05-15 16 views
6

Ho un'applicazione PhoneGap-iOS per iPad dove l'utente riceverà il popup di disconnessione come mostrato nell'immagine in basso.PhoneGap jQuery event.target Non funziona

Logout popup

Voglio che questo pop-up per nascondere quando l'utente fa clic sul corpo. Il mio code che funziona sul browser nativo è non funzionante su iPad Simulator.

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

Hai provato su un iDevice reale? – Bigood

+0

L'ho provato anche su Real Device. – Prasen

risposta

2

Forse event.touches[0].target può farlo su Safari Mobile (hai la matrice tocchi al fine di gestire gli eventi multitouch, uno per dito). Come discusso in questo argomento: Mobile Safari - event.target in touch event

Ma penso che valga la pena provare con jquery-ui-touch-punch.

E 'quello che uso per gestire eventi di tocco con jQuery sul Web mobile app (come Cordova/PhoneGap)

Molto semplice: semplicemente aggiungendo questa libreria rende ogni caso Touh si comportano come gli eventi del mouse.

(touch down/up => mouse verso il basso/alto, premere singolo => Clicca ecc ...)

+0

Proverò ad usare jquery-ui-touch-punch. Ma volevo sapere cosa è andato storto con il codice di cui sopra quando lo test su iPad Simulator – Prasen

+0

hmm non sono sicuro se il suo 'clickOrTouch' senza la 'C' maiuscola? – Guian

+0

l'evento ClickOrTouch viene eseguito. Solo l'event.target mostra ogni volta indefinite. – Prasen

1

Hai provato un evento diverso ancora? qualcosa del genere forse?

$("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

In iPhone, dispositivi iPad evento Click lavorerà in tag di ancoraggio solo non per campata o tag div, in modo da provare questo funzionerà.

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

Funziona come un incanto grazie! –