Sencha Touch: можно ли остановить прокрутку списка по вертикали при возникновении события itemswipe? - PullRequest
2 голосов
/ 05 октября 2011

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

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

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

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

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

            //tasks

        });

        }

   },

Спасибо!

1 Ответ

3 голосов
/ 16 января 2012

Я заставил его работать так:

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

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

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

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

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

...