Modern Tarayıcılarda DOM Level 3 Altında Olay Tetikleme

Eğer Level 2 DOM HTML Tanımlaması‘na bakarsanız, click() fonksiyonunun sadece HTMLInputElement‘ine tanımlanmış olduğunu görürsünüz. Bu durum Safari’de olayın(event) tetiklenmemesi gibi bir soruna yol açıyor.

Modern tarayıcılarda DOM Level 3 altında olay tetiklemenin doğru yolu aşağıdaki gibidir:

// First create an event
var click_ev = document.createEvent("MouseEvent");

// Initialize the event
click_ev.initEvent("click", true /* bubble */, true /* cancelable */);

// Trigger the event
document.getElementById("someElement").dispatchEvent(click_ev);

Safari, Chrome, Firefox, Opera ve IE9’da çalışan jsfiddle örneğine buradan bakabilirsiniz.

Orijinal yazı