在可能的情況下,我更喜歡調用函數而不是調度事件。如果您可以控制要運行的代碼,則此方法很有效,但請參閱下面有關您不擁有代碼的情況。
window.onresize = doALoadOfStuff;function doALoadOfStuff() {
//do a load of stuff}
在此示例中,您可以在doALoadOfStuff
不調度事件的情況下調用該函數。
在現代瀏覽器中,您可以使用以下命令觸發事件:
window.dispatchEvent(new Event('resize'));
這在Internet Explorer中不起作用,您必須在其中進行縮寫:
var resizeEvent = window.document.createEvent('UIEvents'); resizeEvent.initUIEvent('resize', true, false, window, 0); window.dispatchEvent(resizeEvent);
jQuery有這個trigger
方法,它的工作方式如下:
$(window).trigger('resize');
并有警告:
雖然.trigger()模擬事件激活,但是使用合成的事件對象,它并不能完美地復制自然發生的事件。
您還可以模擬特定元素上的事件......
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);}