Mümkün olduğunda, bir olay göndermek yerine işlevi çağırmayı tercih ederim. Çalıştırmak istediğiniz kod üzerinde kontrolünüz varsa bu işe yarar, ancak kodun sahibi olmadığınız durumlar için aşağıya bakın.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
Bu örnekte, doALoadOfStuff
bir olay göndermeden işlevi çağırabilirsiniz .
Modern tarayıcılarınızda, etkinliği aşağıdakileri kullanarak tetikleyebilirsiniz :
window.dispatchEvent(new Event('resize'));
Bu, uzun elinizi yapmanız gereken Internet Explorer'da çalışmaz:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery, aşağıdakitrigger
gibi çalışan bir yönteme sahiptir :
$(window).trigger('resize');
Ve uyarı var:
.Trigger (), sentezlenmiş bir olay nesnesiyle tamamlanan bir olay etkinleştirmesini simüle etse de, doğal olarak oluşan bir olayı mükemmel şekilde çoğaltmaz.
Ayrıca belirli bir öğedeki etkinlikleri simüle edebilirsiniz ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}