Sencha Touch: могу ли я остановить вертикальную прокрутку списка при возникновении события itemswipe?

#sencha-touch

#sencha-touch

Вопрос:

Мы делаем демонстрационную версию iPhone в стиле bootstrap и больше ориентируемся на jQuery, чем на Ext, и, соответственно, у нас возникли некоторые проблемы с событиями и синтаксисом в Sencha Touch.

Я прикрепил событие itemswipe к элементу списка, и при пролистывании оно выполняет заданные задачи, но при пролистывании список также перемещается по вертикали. Я бы предпочел, чтобы этого не произошло.

Есть ли параметр «остановить прокрутку», который я мог бы добавить к функции ниже? Прошу прощения, если я упускаю очевидное — между документацией и крайним сроком это может иметь место.

 $itemswipe: function (list, index, element, event) {

        if (event.direction =="right") {

            //tasks

        });

        }

   },
  

Спасибо!

Ответ №1:

Я заставил его работать следующим образом:

 var thisController = this;
this.control({
        '.myList' : {
            itemswipe : function(dataView, index, target, e, eOpts) {
                console
                        .log('myList itemSwipe '
                                  index);

                thisController.getMyList().setScrollable(false);
            }
        }
    });
  

Все это определено в функции инициализации контроллера. Я сохраняю ссылку на контроллер, потому что иногда она выходит за рамки обработчика событий. Таким образом, вы можете ссылаться на контроллер. У меня также есть ‘myList’, определенный примерно как ссылка:

 {
    ref : 'myList',
    selector : '.myList'
}
  

Это, по крайней мере, остановит прокрутку вашего списка. Вы можете повторно включить его с опозданием (установите для него значение true), когда вы закончите с тем, что вы хотите сделать, когда обнаруживается прокрутка элемента. Это работает на Sencha Touch 2. Дайте мне знать, если вам нужна дополнительная информация!

Комментарии:

1. Спасибо! Собираюсь попробовать.