SORU
22 Aralık 2008, PAZARTESİ


Nasıl ınline özelliği ile olay yayılım özniteliği durdurmak için?

Aşağıdakileri göz önünde bulundurun:

<div onclick="alert('you clicked the header')" class="header">
  <span onclick="alert('you clicked inside the header');">something inside the header</span>
</div>

Nasıl kullanıcı alanını tıklattığında, div onclick olayı değil ben yapabilir miyim?

CEVAP
23 Aralık 2008, Salı


Olay içinden bir işlev nesnesi elde etmek için iki yol vardır:

  1. İlk bağımsız değişken, W3C uyumlu bir tarayıcı (Chrome, Firefox, Safari, 9 )
  2. Pencere.Internet Explorer nesne (&;=8 lt) olay

Eğer W3C önerileri takip etmeyin eski tarayıcıları desteklemek gerekiyorsa, genellikle bir işlev içinde aşağıdaki gibi kullanabilirsiniz:

function(e) {
  var event = e || window.event;
  [...];
}

önce biri, sonra diğeri kontrol ve olayı değişken içinde bulundu, hangisi mağaza. Ancak içi bir olay işleyicisi kullanmak için e bir nesne yok. Bu durumda her zaman kullanılabilir ve bağımsız bir işleve komple set anlamına gelir arguments koleksiyon yararlanmak için:

onclick="var event = arguments[0] || window.event; [...]"

Ancak, genel olarak, eğer gerekiyorsa satır içi olay işleyicileri Kaçınılması gereken bir şey konuşmak yayılmasını durdurma gibi karmaşık. Olay işleyicileri yazmak ayrı unsurlar ve bunları takmadan okunabilirliği ve bakımı için hem de orta ve uzun vadede çok daha iyi bir fikir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog

    EEVblog

    4 NİSAN 2009
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009