Io uso TouchSwipe per creare un elenco di immagini scorrevoli. Lego l'evento di scorrimento alle immagini, mentre lego anche un evento click che aprirà la versione ingrandita dell'immagine.Come impedire lo scorrimento per attivare il clic?
Il mio problema è che se faccio scorrere, spara anche l'evento click. Ho provato tap instead of swipe ma non riesco a farlo funzionare. Dopo questo ho provato event.preventDefault()
e event.stopPropagation()
che è stato suggerito in un sacco di posto, ma non c'era alcun effetto. Il mio tentativo di soluzione finale è stato quello di disassociare l'evento click e rebindarlo dopo l'evento, ma se collego l'evento alla fine della funzione evento, si attiva nuovamente il clic.
$(".js-header-swipe-image").swipe({
swipe:function(event, direction, distance, duration, fingerCount){
$("#details").unbind('click');//Temporary unbind, otherwise the swipe's click would trigger the gallery opening.
//Handling swipe direction.
$('#details').on('click', '.js-header-swipe-image', function(){//Rebind the temporary unbinded event.
console.log('click');
$('#modal-gallery').modal('show');
});
}
});
Esiste un modo per interrompere un evento in sé o di chiamare una funzione dopo l'evento si è concluso in modo da poter associare nuovamente il clic dopo il colpo finito in modo che non farebbe scattare il rebinded clic? Sono anche aperto a qualsiasi altra soluzione al problema.
Avete trovato qualche soluzione? – flakerimi
@Flakerim No, ma ho scoperto che nelle piattaforme mobili è implementato in modo diverso, quindi questo problema non esiste. Ancora un problema su PC. – totymedli
Ho corretto il mio, utilizzava il cursore di rivoluzione, ho rinominato $ .fn.swipe in $ .fn.swipeing e chiamato .swipeing ({}), controlla se questo ti aiuta. Potresti avere un altro plugin che sovrascrive lo scorrimento. – flakerimi