Тема 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 ответ

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите