Próbuję coś szalonego, chciałbym wdrożyć funkcję Instagram: dwa razy stuka, aby polubić.Kliknij dwukrotnie konflikt (jQuery and Hammer.js)
Używam najnowszych wersji jQuery i Hammer.js. Nie jestem zaawansowanym profesjonalistą, ale próbowałem napisać kod JavaScript, aby zidentyfikować to wydarzenie.
var postDoubleTapped;
postDoubleTapped = false;
Hammer($('.post').get(0)).on('doubletap', function(event) {
event.preventDefault();
postDoubleTapped = true;
console.log('Double tap!');
return false;
});
$(document).on('click', '.post a', function(event) {
event.preventDefault();
console.log(postDoubleTapped);
setTimeout((function(_this) {
return function() {
if (!postDoubleTapped) {
location.href = $(_this).attr('href');
}
postDoubleTapped = false;
};
})(this), 500);
return false;
});
Jak widać na przykładzie (http://codepen.io/caio/pen/vqEjc) nie działa. Powraca konsoli:
Jest jeszcze inny problem, nie mogę odtworzyć cel _blank
na a
tagu.
Czy jest to lepsza metoda? Czy jestem na dobrej drodze? Jak mogę to naprawić?
Chrome blokuje "kliknięcie" –
Tak, nie jestem pewien, czy możesz zapobiec blokowaniu wyskakujących okienek podczas otwierania nowego okna programowo.Myślę, że jest to dozwolone tylko w rzeczywistym onclick łącza, w twoim przypadku 'setInterval' oznacza, że twój kod będzie exe wycięte poza faktycznym onclick. Usuń 'target =" _ blank "', a kliknięcie zostanie wyzwolone. – sroes