Супер короткая версия:
Элементы веб-приложения html5 на основе jQuerymobile не отвечают непосредственно на vclicks на iPad. Вместо этого они молча прокручивают верхнюю часть страницы и запускают щелчок мышью по всему, что находится в той же области экрана.
ДЛИТЕЛЬНАЯ ВЕРСИЯ С КАРТИНАМИ И КОДОМ:
Я использую JQuerymobile, и у меня проблема с тем, что моя страница реагирует на некоторые события vclick, когда я использую свой iPad. У меня есть страница с кучей элементов, которые должны отвечать на события vclick. Если все умещается на дисплее моего iPad без прокрутки, все работает отлично. Если мне нужно прокрутить, чтобы увидеть элемент, на который я хочу щелкнуть, я получу следующее поведение:
Я касаюсь пальца, где красный круг здесь:
![http://imgur.com/3L9qR.png](https://i.stack.imgur.com/LJiQ4.png)
Страница мерцает, и страница реагирует так, как будто я щелкнул область в маленьком синем круге:
(изображение синего круга отредактировано из-за отсутствия гиперссылок на noobs (Это imgur.png Q43ri.png)
Я был смущен тем, что, черт возьми, происходило, пока я не наложил экраны:
![http://imgur.com/KMPqQ.png](https://i.stack.imgur.com/MbPok.png)
Поэтому, когда я щелкаю по одному из своих элементов div, кажется, что он обращает внимание на координаты, которые я нажимаю на дисплее, но затем прокручивается до верхней части окна и фактически выполняет щелчок с этой точки зрения. Как мне это исправить?
Вот HTML-код для этого раздела страницы:
<div id="inventoryPageContainer" style="padding-right: 100px;">
<div id="inventoryDisplayHeaders">
<div class="inventoryPageName inventoryPageColumn header">Name</div>
<div class="inventoryPageQuant inventoryPageColumn header">#</div>
<div class="inventoryPageWt inventoryPageColumn header">Wt.</div>
</div>
</div>
<div id="inventoryTemplate" class="inventoryPageRow" style="display: none;">
<div class="inventoryPageName inventoryPageColumn">Template Item Name</div>
<div class="inventoryPageQuant inventoryPageColumn">#</div>
<div class="inventoryPageWt inventoryPageColumn">X lb</div>
</div>
<div style="clear: both; border-bottom: 2px solid black;"></div>
Все дивы являются клонами этого предмета инвентаря. Если вам нужен CSS для этого (я не знаю человека, я пытаюсь дать кому-нибудь, кто читает эту информацию, всю имеющуюся у меня информацию):
#inventoryPage .inventoryPageName {
width: 100%;
}
#inventoryPage .inventoryPageQuant {
width: 50px;
margin-right: -50px;
vertical-align: middle;
}
#inventoryPage .inventoryPageWt {
width: 50px;
margin-right: -50px;
right: -50px;
vertical-align: middle;
}
Вот код привязки события:
templateCopy.find ('. inventoryPageName'). text (row.itemName) .bind ('vclick.inventoryPage', {row: row}, generateItemDescriptionDialog);
templateCopy.find ('. inventoryPageQuant'). text (row.quantity) .bind ('vclick.inventoryPage', {row: row}, generateItemQuantityDialog);
generateItemDescriptionDialog и generateItemQuantityDialog оба устанавливают некоторые значения на некоторых страницах диалога, а затем запускают отображение страниц диалога с помощью $ .changePage ("# thepages").
Так э-э ... почему это происходит и как мне этого не делать?
(Это веб-приложение для персонажей RPG, если кому-то интересно, почему я каталогизирую оружие и оружие.)