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

  • jbignacio

    jbignacio

    13 Mart 2006
  • KSI

    KSI

    25 Temmuz 2009
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006