我在窗口调整上注册了一个触发器.我想知道如何触发要调用的事件.例如,当隐藏div时,我希望调用触发器函数.

我发现window.resizeTo()可以触发这个功能,但是有没有其他的解决方案呢?

推荐答案

在可能的情况下,我更喜欢调用函数,而不是分派事件.如果你能控制你想要运行的代码,这是很好的,但是如果你没有自己的代码,请看下面的例子.

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 has the trigger method,其工作原理如下:

$(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);
}

Javascript相关问答推荐

如何循环访问对象数组并以关键值形式获得结果?

JS、C++和C#给出不同的Base 64 Guid编码结果

在Angular中将样式应用于innerHTML

在网页上添加谷歌亵渎词

如何使用JavaScript将文本插入空div

将现场录音发送到后端

配置WebAssembly/Emscripten本地生成问题

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

使用ThreeJ渲染的形状具有抖动/模糊的边缘

如何在Bootstrap中减少网格系统中单个div的宽度

元素字符串长度html

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

将对象推送到数组会导致复制

背景动画让网站摇摇欲坠

JavaScript将字符串数字转换为整数

为什么NULL不能在构造函数的.Prototype中工作

按特定顺序将4个数组组合在一起,按ID分组

是否有静态版本的`instanceof`?

使用VITE开发服务器处理错误

找不到处于状态的联系人