2012-10-12 28 views
5

, kök hangi ben sadece şekilde document.body için bir olay işleyicisi, takmak eğer şudur:click document.body 'ye bağlanmış olay dinleyicileri iOS6'da ateş etmiyor mu? iOS6 garip davranışlar ve çalışmayan olay heyet yaşamak

document.body.addEventListener("click", function(){alert("ios6 sucks")}, false); 

bu doesnt örneğin koşmak olsun diye google.com adresine gidin ve bunu safari uzak webinspector ile ekleyin. Bazı durumlarda, sayfada bir bağlantıya tıklarsam veya doğrudan ona eklenmiş bir olay işleyicisine sahip olan bir öğeye tıklarsa, çalışır. Aynı büyük tarayıcılarda ve iOS 5 ve 4'te de iyi çalışıyor. Vücuda dokunma eklenmesi gerektiği gibi tetiklenecek ve potansiyel bir çözüm olabilir, ancak dokunma hareketinde bazı tıklama algılamalarını programlamak yerine tarayıcının tıklamaları algılamasına izin vermek gerçekten tercih edilebilir./touchEnd. Bu bir iOS6 hatası olup olmadığını merak ediyorum. ama henüz bunun hakkında şikayet eden başka kimseyi görmedim.

+0

bulgularımı takip ederek, tek bir sayfanın tek bir çocuğunun tek başına oturduğu bir bölüme tıklatma işleyicisini eklerseniz, tüm sayfayı sarar, o zaman işe yarayacaktır. Ve bir yan etki olarak, bu da vücut tıklama olayı tetikleyicisini de tetikleyecektir ... eğer çocuk div'a eklenmiş bir olay yoksa, o zaman hiçbir olayın vücut üzerinde tetiklenmediği gibi. – bonklers

cevap

0

@Bonkers ... Tıklama etkinliğini div'a ekledikten sonra neden tıklamanın tetiklendiğine başvuran, yalnızca olay köpürmesinden kaynaklanmaktadır. Ben burada kod div iki kez aradım ama alır gösteren çoğaltılmış

sadece bir kez vücut üzerinde:

<div id="myDiv">FlackAttack Test</div> 

<script> 
document.body.addEventListener("click", function(){alert("ios6 sucks")}, false); 
document.getElementById('myDiv').addEventListener('click', function(){alert("ios6 sucks twice")},  false); 
</script> 

köpüren gelen olayı durdurmak istese, e.stopPropagation diyebiliriz() ; veya e.cancelBubble = true;

+0

Evet, bu iyi ama bu hata değil, hatanın vücuda bağlandığı dinleyici tepki vermiyor. Oysa iOS5'te öyle. – bonklers

İlgili konular