Плавная прокрутка кликабельного элемента

#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. нам нужно объяснение вашего ответа.