Kullanımı $('#myDiv').click(function(){
ise daha iyi standart etkinlik kaydı modeli aşağıdaki gibi. (jQuery dahili olarakaddEventListener
ve kullanır attachEvent
).
Temel olarak bir olayın modern bir şekilde kaydedilmesi , olayları ele almanın göze batmayan bir yoludur. Ayrıca, hedef için birden fazla olay dinleyicisi kaydetmek addEventListener()
için aynı hedefi arayabilirsiniz .
var myEl = document.getElementById('myelement');
myEl.addEventListener('click', function() {
alert('Hello world');
}, false);
myEl.addEventListener('click', function() {
alert('Hello world again!!!');
}, false);
http://jsfiddle.net/aj55x/1/
Neden addEventListener kullanıyorsunuz? (MDN'den)
addEventListener, W3C DOM'da belirtildiği gibi bir olay dinleyicisini kaydetmenin yoludur. Yararları aşağıdaki gibidir:
- Bir olay için tek bir işleyiciden daha fazlasını eklemeye izin verir. Bu, özellikle diğer kütüphaneler / uzantılar kullanılsa bile iyi çalışması gereken DHTML kitaplıkları veya Mozilla uzantıları için kullanışlıdır.
- Dinleyici aktive edildiğinde (yakalama veya köpürme) fazın daha hassas kontrolünü sağlar
- Yalnızca HTML öğelerinde değil, herhangi bir DOM öğesinde çalışır.
Modern etkinlik kaydı hakkında daha fazla bilgi -> http://www.quirksmode.org/js/events_advanced.html
HTML niteliklerini ayarlamak gibi diğer yöntemler , örnek:
<button onclick="alert('Hello world!')">
Veya DOM öğesi özellikleri , örnek:
myEl.onclick = function(event){alert('Hello world');};
eskidir ve kolayca yazılabilir.
İşaretlemeyi daha büyük ve daha az okunabilir hale getirdiğinden HTML özelliğinden kaçınılmalıdır. İçerik / yapı ve davranış endişeleri iyi ayrılmış değildir, bu da bir hatanın bulunmasını zorlaştırır.
DOM öğesi özellikleri yöntemiyle ilgili sorun, olay başına bir öğeye yalnızca bir olay işleyicisinin bağlanabilmesidir.
Geleneksel olay işleme hakkında daha fazla bilgi -> http://www.quirksmode.org/js/events_tradmod.html
MDN Referansı: https://developer.mozilla.org/en-US/docs/DOM/event