我已经在窗口调整大小上注册了一个触发器。我想知道如何触发事件被调用。例如,当隐藏一个div时,我希望调用触发函数。
我发现window.resizeTo()可以触发该功能,但是还有其他解决方案吗?
window.resizeTo()
在可能的情况下,我更喜欢调用函数而不是调度事件。如果您可以控制要运行的代码,则此方法效果很好,但是如果您不拥有该代码,请参见下文。
window.onresize = doALoadOfStuff; function doALoadOfStuff() { //do a load of stuff }
在此示例中,您可以在doALoadOfStuff不调度事件的情况下调用该函数。
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具有triggermethod,其工作方式如下:
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); }