Tam, gdzie to możliwe, wolę wywołać funkcję niż wywołać zdarzenie. Działa to dobrze, jeśli masz kontrolę nad kodem, który chcesz uruchomić, ale poniżej znajdziesz przypadki, w których nie masz kodu.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
W tym przykładzie możesz wywołać doALoadOfStuff
funkcję bez wywoływania zdarzenia.
W nowoczesnych przeglądarkach możesz wywołać zdarzenie, używając:
window.dispatchEvent(new Event('resize'));
To nie działa w Internet Explorerze, gdzie będziesz musiał zrobić długą rękę:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery ma trigger
metodę , która działa w następujący sposób:
$(window).trigger('resize');
I ma zastrzeżenie:
Chociaż .trigger () symuluje aktywację zdarzenia wraz ze zsyntetyzowanym obiektem zdarzenia, nie doskonale replikuje naturalnie występującego zdarzenia.
Możesz także symulować zdarzenia dotyczące określonego elementu ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}