#jquery #ipad #click #touch
#jquery #iPad #нажмите #коснитесь
Вопрос:
Я использую плагин smoothdivscroll для создания миниатюр на моем сайте. Все отлично работает в настольном браузере, за исключением браузера iPad (я еще не тестировал в браузере iphone). Это мой код javascript :
$("div#thumbScrollable").smoothDivScroll({
hotSpotScrolling: false,
touchScrolling: true,
manualContinuousScrolling: true,
mousewheelScrolling: false,
//visibleHotSpotBackgrounds: "",
//hotSpotScrolling: false,
//visibleHotSpotBackgrounds: "",
//mousewheelScrollingStep: 45,
//mousewheelScrolling: "vertical",
//touchScrolling: true
scrollToAnimationDuration: 500,
setupComplete : function() {
}
});
При просмотре на ipad пользователь может прокручивать, касаясь и перетаскивая / проводя пальцами, и это работает хорошо. Однако я прикрепил событие щелчка jquery к ЭЛЕМЕНТУ smoothdivscroll, но оно не сработало. У меня это так
$(document).on('click', "div#thumbScrollable .clickableitem", function(event) {
alert("SMOOTHDIVSCROLL ITEM IS CLICKED");
});
Когда я щелкнул по элементу, окно предупреждения не отображается, и это означает, что событие не запускается. Я предполагаю, что существует конфликт между событием КАСАНИЯ и щелчка, поэтому jquery не смог определить, является ли это событием щелчка. У кого-нибудь раньше были такие проблемы?
Пожалуйста, направьте меня.
Спасибо
Ответ №1:
как насчет назначения обработчика для mousedown
и touchstart
?
$(document).on('mousedown touchstart', "div#thumbScrollable .clickableitem", function(event) {
alert("SMOOTHDIVSCROLL ITEM IS CLICKED");
});
Ответ №2:
$( "div#thumbScrollable" ).bind("touchstart",function( event ) {
$("div#thumbScrollable").smoothDivScroll("enable");
});
$( "div#thumbScrollable" ).on('touchend',function( event ) {
$("div#thumbScrollable").smoothDivScroll("disable");
});
Вы должны отключить плавную прокрутку после прокрутки касанием и снова включить ее при касании start или touch move.
Комментарии:
1. нам нужно объяснение вашего ответа.