Событие touchend в ios webkit не запускается?

Я пытаюсь реализовать меню для приложения на базе 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?

Спасибо

8
задан Craig 7 October 2011 в 18:44
поделиться