Mobile Web – Distriggers la selezione del text a lungo touch / taphold

Ho visto / sentito parlare di disabilitazione della selezione dei testi con le variazioni di user-select , ma nessuno di questi funziona per il problema che ho. Su Android (e presumo su iPhone), se tocca e tieni in mano il text, lo mette in evidenza e port piccole bandiere per trascinare e select il text. Devo distriggersrli (vedi image):

immagine dello schermo

  • Android e Facebook condividono l'intenzione
  • Applicazione Android in Eclipse: modificare il text non visualizzato sul layout grafico
  • La libreria condivisa manca in android.
  • Bootstrap - Imansible fare clic su menu a discesa del menu di figlio in un dispositivo mobile e prima di scattare non innescare il collasso nav
  • Perché non è ansible riprodurre un file audio in una chiamata vocale in android
  • Chiamate Javascript da Android utilizzando PhoneGap
  • Ho provato a non usufruire la function -webkit-touch-callout e ho provato anche cose come $('body').on('select',function(e){e.preventDefault();return;}); inutilmente. E i trucchi economici come ::selection:rgba(0,0,0,0); non functionrà né nascondendoli non aiutano – la selezione continua a suonare e interrompe l'UI. Inoltre indovino che quelle bandiere sarebbero ancora lì.

    Qualsiasi pensiero sarebbe fantastico. Grazie!

  • Android (Java) Semplice Invio e ricezione con Server - Fast Setup Challenge
  • Qual è il modo più semplice e più robusto per get la posizione corrente dell'utente su Android?
  • Qual è la durata di un brindisi LENGTH_LONG e LENGTH_SHORT
  • Google Firebase - come eliminare i rapporti di crash?
  • Sostituzione del meccanismo dei pesi linearLayout
  • android launcher page nel menu
  • 3 Solutions collect form web for “Mobile Web – Distriggers la selezione del text a lungo touch / taphold”

    Riferimento:

    jsFiddle Demo con Plugin

    Il precedente jsFiddle Demo che ho fatto utilizza un plugin per consentire di impedire che qualsiasi block di text venga selezionato nei dispositivi Android o iOS (insieme ai browser desktop).

    È facile da usare e qui è il markup di esempio una volta installato il plugin jQuery.

    Esempio HTML:

     <p class="notSelectable">This text is not selectable</p> <p> This text is selectable</p> 

    JQuery di esempio:

     $(document).ready(function(){ $('.notSelectable').disableSelection(); }); 

    Codice plugin:

     $.fn.extend({ disableSelection: function() { this.each(function() { this.onselectstart = function() { return false; }; this.unselectable = "on"; $(this).css('-moz-user-select', 'none'); $(this).css('-webkit-user-select', 'none'); }); return this; } }); 

    Per il tuo commento del messaggio: I still need to be able to trigger events (notably, touchstart, touchmove, and touchend) on the elements.

    Vorrei semplicemente utilizzare un wrapper che non è influenzato da questo plugin, ma i contenuti di text sono protetti con questo plugin.

    Per consentire l'interazione con un collegamento in un block di text, è ansible utilizzare span tags per tutti tranne il collegamento e aggiungere il nome della class .notSelected per i span tags , preservando così la selezione e l'interazione del collegamento degli ancoraggi.

    Aggiornamento di stato: Questa aggiornata jsFiddle conferma che si preoccupa che forse altre funzioni potrebbero non funzionare quando la selezione di text è disabilitata. Viene mostrato in questo jsFiddle aggiornato è l'ascolto events di jQuery Click che spara un avviso di browser per quando il text grassetto viene cliccato, anche se quel text grassetto non è selezionabile in text.

     -webkit-touch-callout:none; -webkit-user-select:none; -khtml-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; -webkit-tap-highlight-color:rgba(0,0,0,0); 

    Ciò lo disattiverà per each browser in corso.

    -webkit-user-select: none; non era supportto su Android fino a 4.1 (scusa).

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.