Wenn möglich, rufe ich die Funktion lieber auf, als ein Ereignis auszulösen. Dies funktioniert gut, wenn Sie die Kontrolle über den Code haben, den Sie ausführen möchten. Im Folgenden finden Sie jedoch Fälle, in denen Sie den Code nicht besitzen.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
In diesem Beispiel können Sie die doALoadOfStuff
Funktion aufrufen , ohne ein Ereignis auszulösen.
In Ihren modernen Browsern können Sie das Ereignis auslösen, indem Sie:
window.dispatchEvent(new Event('resize'));
Dies funktioniert nicht in Internet Explorer, wo Sie die Langschrift ausführen müssen:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery hat die trigger
Methode , die folgendermaßen funktioniert:
$(window).trigger('resize');
Und hat die Einschränkung:
Obwohl .trigger () eine Ereignisaktivierung mit einem synthetisierten Ereignisobjekt simuliert, wird ein natürlich vorkommendes Ereignis nicht perfekt repliziert.
Sie können auch Ereignisse für ein bestimmtes Element simulieren ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}