Я пытаюсь реализовать меню для приложения на основе ios webkit, в котором пользователь касается / щелкает и удерживает кнопку меню ('.menu_item'), через 500 мс открывается подменю (div.slide_up_sub_menu), и пользователь должен быть может провести пальцем / мышью до элемента подменю и отпустить.
<li class="menu_item">
ASSET MANAGEMENT
<div class="slide_up_sub_menu hidden_menu">
<ul class="submenu">
<li>Unified Naming Convention</li>
<li>Version Control</li>
</ul>
</div>
</li>
После этого приложение должно быть в состоянии определить, в каком элементе подменю произошло событие touchend / mouseup. Я привязываю событие touchstart к пункту меню, жду 500 мс, а затем сообщаю, что подменю должно отображаться. Когда пользователь отпускает палец, должно сработать событие touchchend, закрывающее подменю. Если пользователь перестал касаться элемента подменю, это должно быть обнаружено. В настоящее время определение того, для какого элемента подменю произошло событие мыши, работает в Safari на рабочем столе:
$('ul.submenu li').live('mouseup', function(e){
console.log($(e.currentTarget)); //works on the desktop
});
но если я сделаю то же самое, используя обработчик touchchend, он не будет работать на ipad:
$('ul.submenu li').live('touchend', function(e){
console.log($(e.currentTarget)); //never fires
});
если я ищу каждое событие touchchend, я могу получить ссылку на родительский элемент подменю, когда заканчиваю касание элемента подменю:
$(document.body).bind('touchend', function(e) {
console.log($(e.target).html()); //logs ASSET MANAGEMENT
});
но нет ссылки на пункт подменю.
Кто-нибудь знает, почему событие touchend не запускается в элементах подменю?
Спасибо