私は500ミリ秒のサブメニューが開いた後(div.slide_up_sub_menu)、ユーザがメニューボタン( '.menu_item')に触れたりクリックしたり保持したりするiosウェブキットベースのアプリケーションのメニューを実装しようとしています。指/マウスをサブメニューli項目までスライドさせて離すことができるはずです。ios webkitのイベントは発射されませんか?
<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>
アプリケーションは、どのサブメニュー項目がトゥイェンド/マウスアップイベントが発生したかを検出できる必要があります。私はメニュー項目にタッチスタートイベントをバインドし、500ms待ってから、サブメニューに表示するように指示しています。ユーザーが指を離すと、イベントが発生してサブメニューが閉じます。ユーザーがサブメニュー項目のタッチを停止した場合は、それを検出する必要があります。現在、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
});
私はすべてのtouchendイベントを見れば、私はサブメニュー項目にタッチを終了したときに、私は親のサブメニュー項目への参照を取得することができます:
$(document.body).bind('touchend', function(e) {
console.log($(e.target).html()); //logs ASSET MANAGEMENT
});
が、サブメニュー項目への参照を。
誰かが、なぜtouchendイベントがサブメニュー項目で起動されていないのでしょうか?
おかげ
お返事ありがとうございました。残念ながら、画面に触れるとすぐにmousedownイベントが発生しません。 mouseupイベントと並行して指が画面を離れると発生します。 http://www.quirksmode.org/blog/archives/2008/08/iphone_events.html – Craig