使用 jquery
1
| $(window).trigger('resize');
|
使用 dispatchEvent
1 2 3 4 5 6 7
| if (Event.prototype.initEvent) { const evt = window.document.createEvent('UIEvents'); evt.initUIEvent('resize', true, false, window, 0); window.dispatchEvent(evt); else { window.dispatchEvent(new Event('resize')); }
|
说明
由于 window 的 resize 事件属于高频操作,需要进行 debounce 等方式来限制执行频率。
1 2 3 4
| import _ from 'lodash';
jQuery(window).on('resize', _.debounce(calculateLayout, 150));
|
另外,还有一个类似 debounce 的函数 throttle,两者的区别可以参考这篇文章。