Tôi đang cố triển khai thực đơn cho ứng dụng dựa trên web ios, trong đó người dùng chạm/nhấp và giữ nút menu ('.menu_item'), sau 500ms menu phụ sẽ mở (div.slide_up_sub_menu) và người dùng sẽ có thể trượt ngón tay/chuột của họ lên đến một mục li menu con và thả ra.sự kiện chạm trong ios webkit không kích hoạt?
<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>
Sau đó, ứng dụng sẽ có thể phát hiện mục menu con/sự kiện touchend/mouseup nào đã xảy ra. Tôi đang ràng buộc một sự kiện touchstart cho mục trình đơn, chờ đợi 500ms, và sau đó nói với menu phụ để hiển thị. Khi người dùng nhả ngón tay của họ, một sự kiện chạm phải kích hoạt menu con. Nếu người dùng đã dừng liên lạc của họ trên một mục menu phụ, nó sẽ được phát hiện. Hiện nay phát hiện trong đó submenu mục một sự kiện xảy ra trên mouseup công trình trong Safari trên máy tính để bàn:
$('ul.submenu li').live('mouseup', function(e){
console.log($(e.currentTarget)); //works on the desktop
});
nhưng nếu tôi làm như vậy sử dụng một handler touchend nó không hoạt động trên một ipad:
$('ul.submenu li').live('touchend', function(e){
console.log($(e.currentTarget)); //never fires
});
nếu tôi tìm kiếm tất cả các sự kiện touchend tôi có thể lấy một tham chiếu đến phụ huynh mục trình đơn phụ khi tôi chấm dứt liên lạc trên một mục menu con:
$(document.body).bind('touchend', function(e) {
console.log($(e.target).html()); //logs ASSET MANAGEMENT
});
nhưng không đề cập đến mục menu con.
Có ai có bất kỳ ý tưởng nào tại sao sự kiện chạm không được kích hoạt trên các mục menu con không?
Cảm ơn
Cảm ơn bạn đã trả lời câu trả lời, thật không may, sự kiện được tổ chức không kích hoạt ngay lập tức khi bạn chạm vào màn hình. Nó chỉ bắn sau khi ngón tay của bạn rời khỏi màn hình song song với sự kiện mouseup. http://www.quirksmode.org/blog/archives/2008/08/iphone_events.html – Craig