Тема default 3 и swipebox. Закрытие окна и лишний клик по элементу второго плана.
Развлекался на досуге с инсталляцией одного магазина и обнаружил в теме default 3 (давно по дефолту не бродил) интересный код, включенный ныне в состав этой темы. Мне код понравился, но захотелось большего и я его быстренько прикрутил к одному своему магазину в замен какого-то старья, которое на мобильных работало так себе. И все здорово, но стал тестировать и тут не обошлось без косяков.
На смартфонах при закрытии окна swipebox при нажатии на крестик
происходит лишний клик на элемент, который находится ЗА всплывающим окном
swipebox. Повезет тем, у кого там ничего нет, а у меня на смартфоне под элементом swipebox-close торчит ссылка в корзину и она благополучно срабатывала. Можно конечно сказать, что мол на смарте и крестик не нужен или корзину передвинь (спасибо). Смахни мол картинку вверх легким движением. Это конечно здорово, но только это не решение проблемы. Я-то смахну, а посетитель зависнет в поисках крестика и уйдет. Ему нужен этот крестик как страховка. Из-за использования touchstart и click, на мобильных устройствах проходит два клика вместо одного.
Идем в файл jquery.swipebox.js и меняем вот это
$( '#swipebox-close' ).bind( action, function() { $this.closeSlide(); } );
на это
var flag = false;
$('#swipebox-close').bind('touchstart click', function(){
if (!flag) {
flag = true;
setTimeout(function(){ flag = false; }, 100);
$this.closeSlide();
}
return false
});
Может кому-нибудь и пригодится. Мне помогло. Больше не беспокоит.
1 ответ
Спасибо за информацию!