penso che si dovrebbe riscrivere alcuni di voi il codice per rendere più facile per ottenere ciò che si vuole .
Provare a annusare l'agente utente non è una grande idea. I dispositivi possono cambiare, i nuovi SO possono essere lanciati e richiede più manutenzione da parte tua. Il rilevamento delle feature è un approccio molto migliore in quanto copre i dispositivi ora e in futuro e riduce al minimo i falsi positivi.
L'aggiornamento PHP ora utilizza l'attributo HTML5 data-*
e rimuove l'evento in linea:
<?php
echo '<table class="myclass">';
while($row=mysql_fetch_array($query)){
echo '<tr><td data-a="'.$row[0].'" data-b="'.$row[1].'">';
echo $row[0];
echo '</td></tr>';
}
echo '</table>';
?>
I nuovi JS verifica se si tratta di un dispositivo touchscreen e definisce una variabile touchDevice
come true
o false
seconda di quale si tratta. Questa variabile viene quindi utilizzata per definire l'evento. Se è true
(il dispositivo è in grado di toccare), l'evento è click
, altrimenti è dblclick
.
Il gestore eventi ora utilizza .on()
anziché essere definito in linea e utilizza la funzione .data()
.
<script>
var touchDevice = !!('ontouchstart' in window) || !!('onmsgesturechange' in window);
$(document).ready(function(){
var dblevent = touchDevice ? 'click' : 'dblclick';
$('.myclass td').on(dblevent, function(){
var data1 = $(this).data('a'), data2 = $(this).data('b');
//-- Something
});
});
</script>
o semplicemente utilizzare il PHP aggiornato e l'evento doubletap
:
$('.myclass td').on('dblclick doubletap', function(){
var data1 = $(this).data('a'), data2 = $(this).data('b');
//-- Something
});
Perché devi aspettare e verificare il tipo di dispositivo sul lato client quando si può controllare da PHP e basta modificare il codice la tua produzione di conseguenza? Controlla il valore $ _SERVER ['HTTP_USER_AGENT']. – Drew
Non lo sapevo =) I'll dargli uno scatto grazie .. – Markipe
@Markipe - Non vorrei davvero consigliare lo User Agent sniffare, leggi qui per i motivi per cui: [Rilevazione del browser usando l'agente utente] (https : //developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent). Inoltre, per un esempio di come consiglierei di farlo basta vedere la mia risposta :) – Joe