Я пытаюсь реализовать меню для приложения на базе 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>
Затем приложение должно иметь возможность определять, в каком элементе подменю произошло событие touch / mouseup. Я привязываю событие touchstart к пункту меню, жду 500 мс, а затем сообщаю, что подменю должно отображаться. Когда пользователь отпускает палец, должно сработать событие touchhend, закрывающее подменю. Если пользователь перестал касаться элемента подменю, это должно быть обнаружено. В настоящее время определение того, в каком элементе подменю произошло событие mouseup, работает в Safari на рабочем столе:
$('ul.submenu li').live('mouseup', function(e){
console.log($(e.currentTarget)); //works on the desktop
});
но если я сделаю то же самое с помощью обработчика touchend, оно не будет работать на 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
});
, но без ссылки на элемент подменю.
Кто-нибудь знает, почему для элементов подменю не запускается событие touchhend?
Спасибо