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
Olay içinden bir işlev nesnesi elde etmek için iki yol vardır:
- İlk bağımsız değişken, W3C uyumlu bir tarayıcı (Chrome, Firefox, Safari, 9 )
- 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.
Nasıl olay onay kutusunu tıklatın köpü...
Nasıl bir JavaScript nesnesinin bir öz...
Nasıl ASP.NET MVC [HandleError] öznite...
Nasıl bir DOM düğüm üzerinde olay dinl...
Nasıl ınline-block öğeleri arasındaki ...