jQuery Mobile и Scrollview автоматически включают прокрутку содержимого div - PullRequest
2 голосов
/ 09 января 2012

Я использую jQuery Mobile и Scrollview .Это было идеальное решение для меня, поскольку у меня были некоторые неприятности с функциями прокрутки в jQuery Mobile и снова с плагином iScroll.

Моя единственная проблема в том, что теперь все теги divу которых data-role="content" автоматически включена прокрутка, что вызывает некоторые последние проблемы, когда некоторые события касания не запускаются, потому что касание должно быть перехвачено как прокрутка.

Эти ошибки возникают только на двух страницах содержимого, обаиз которых даже не требуют прокрутки.В нем предусмотрена возможность прокрутки всего содержимого, но есть ли способ отключить прокрутку для некоторых тегов div?

Ответы [ 4 ]

1 голос
/ 09 марта 2012

Я выкопал источник и нашел обходной путь.Плагин отфильтровывает div с помощью класса "ui-scrollview-clip".НТН.

0 голосов
/ 03 мая 2012

Попробуйте инвертировать направление прокрутки.Если у вас горизонтальный scrollView, выполните:

$('#yourid').scrollview({ direction: 'y' });

и 'x' для вертикального scrollView.Измените направление, чтобы снова включить прокрутку.

0 голосов
/ 10 января 2012

Я потратил много времени, пробуя всевозможные вещи, но общая идея заключалась в том, что мне нужен класс, который я мог бы использовать, чтобы остановить прокрутку этого содержимого div (noscroll).

Переопределение метода addClass для предотвращения добавления класса ui-scrollview-view вызвало много ошибок в других местах. Я понятия не имею, почему, возможно, другой плагин на странице пытается переопределить его снова?

В конце концов мне пришлось вручную изменить scrollview.js, что, как оказалось, всего лишь небольшой файл. В строке 19 есть селектор для выбора всех элементов, где data-role равно content. После этого селектора я добавил .not('.noscroll').

Быстрое изменение, и я позаботился о том, чтобы везде я мог заметить, что я изменил этот файл с оригинала. Но после 5 часов, пытаясь найти лучшее решение, я согласился на это!

0 голосов
/ 10 января 2012

У меня была такая же проблема, и я мог решить ее, используя это решение (thx Dessus ):

Я думаю, вы можете обнаружить, что событие используется в элементе управления scrollview.Вы можете переопределить обработчик javascript для этого элемента управления, чтобы позволить ему продолжать пузыриться.

Чтобы переопределить функцию, вы можете использовать эту технику: Переопределение функции JavaScript при обращении к исходной

Быстрый просмотрв файле, похоже, этот метод может содержать подсказки относительно того, что вы хотите:

_handleDragMove: функция (например, эй)

конкретно:

var svdir= this.options.direction;if (! this._directionLock)

Я использовал версию прокрутки, показанную здесь: http://jquerymobile.com/test/experiments/scrollview/scrollview-nested.html

...