如何在JavaScript中触发窗⼝调整⼤⼩事件?
本⽂翻译⾃:
I have registered a trigger on window resize. 我在窗⼝调整⼤⼩时注册了⼀个触发器。
我在窗⼝调整⼤⼩时注册了⼀个触发器。 I want to know how I can trigger the event to be called. 我想知道如何触发要调⽤的事件。
我想知道如何触发要调⽤的事件。 For example, when hide a div, I want my trigger function to be called. 例例如,当隐藏div时,我希望调⽤我的触发器函数。
I sizeTo() can trigger the function, but is there any other solution? 我发现
我发现sizeTo()可以触发该功能,但还有其他解决⽅案吗?
#1楼
#2楼
使⽤jQuery,您可以尝试调⽤ :
$(window).trigger('resize');
#3楼
Where possible, I prefer to call the function rather than dispatch an event. 在可能的情况下,我更喜欢调⽤函数⽽不是调度事
在可能的情况下,我更喜欢调⽤函数⽽不是调度事件。 This works well if you have control over the code you want to run, but see below for cases where you don't own the 件。
code. 如果您可以控制要运⾏的代码,则此⽅法很有效,但请参阅下⾯有关您不拥有代码的情况。
如果您可以控制要运⾏的代码,则此⽅法很有效,但请参阅下⾯有关您不拥有代码的情况。
function doALoadOfStuff() {
//do a load of stuff
}
In this example, you can call the doALoadOfStuff function without dispatching an event. 在此⽰例中,您可以在不调度事件的情
在此⽰例中,您可以在不调度事件的情况下调⽤doALoadOfStuff函数。
In your modern browsers, you can using: 在现代浏览器中,您可以使⽤以下命令 :
在现代浏览器中,您可以使⽤以下命令 :
window.dispatchEvent(new Event('resize'));
This doesn't work in Internet Explorer, where you'll have to do the longhand: 这在Internet Explorer中不起作⽤,您必须在其
这在Internet Explorer中不起作⽤,您必须在其中进⾏缩写:
var resizeEvent = ateEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
, which works like this: ,其⼯作⽅式如下:
,其⼯作⽅式如下:
$(window).trigger('resize');
And has the caveat: 并有警告:
并有警告:
Although .trigger() simulates an event activation, complete with a synthesized event object, it does not perfectly replicate a naturally-occurring event. 虽然.trigger()模拟事件激活,但是使⽤合成的事件对象,它并不能完美地复制⾃然
虽然.trigger()模拟事件激活,但是使⽤合成的事件对象,它并不能完美地复制⾃然发⽣的事件。
You can also simulate events on a 您还可以模拟特定元素上的事件......
您还可以模拟特定元素上的事件......
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
jquery弹出div窗口
var elem = ElementById(id);
return elem.dispatchEvent(event);
}
#4楼
window.dispatchEvent(new Event('resize'));
#5楼
将触发window的onresize事件。 This works in sizeBy() will trigger window's onresize sizeBy()将触发window的onresize事件。
or . 这适⽤于或 。
这适⽤于或 。
#6楼
I wasn't actually able to get this to work with any of the above solutions. 我实际上⽆法使⽤上述任何解决⽅案。
我实际上⽆法使⽤上述任何解决⽅案。 Once I bound the event with jQuery then it worked fine as below: ⼀旦我⽤jQuery绑定事件,它就可以正常⼯作如下:
⼀旦我⽤jQuery绑定事件,它就可以正常⼯作如下:
$(window).bind('resize', function () {
resizeElements();
}).trigger('resize');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。