jquery自定义事件混淆

jquery custom events confusion

本文关键字:事件 自定义 jquery      更新时间:2023-09-26

我已经阅读了jQuery的自定义事件文档。就在我开始理解你可以自己触发这些自定义事件的时候,链接或窗口等元素也有标准的事件,比如点击、滚动或调整大小。。。。

当我读unvil.js中的代码时,我很困惑底部有以下代码:

$w.on("scroll.unveil resize.unveil lookup.unveil", unveil);

这些事件在做什么?它们在哪里设置/触发?什么是lookup.unveil.上的"查找"事件

这些是名称空间的jQuery事件

在jQuery中,事件可以按名称命名,以使它们具有唯一性并更易于使用
一般来说,你会添加一个点击事件,比如这个

$('.element').on('click', fn);

但是如果你只想从一个元素中删除事件,并且你做了

$('.element').off('click', fn);

您可以从所有元素中删除该事件,这样您就可以将该事件命名为

$('.element').on('click.custom', fn);

名称无关紧要,它仍然是一个click事件,但现在可以通过执行在不影响与同样具有click事件的选择器匹配的其他元素的情况下删除它

$('.element').off('click.custom', fn);

要触发这样的事件,只需执行

$('.element').trigger('click.custom');

它也会像任何点击处理程序一样,由常规点击触发。

在jQuery中,你还可以定义自定义事件,如果你读过自定义事件文档,你可能就知道了,这就像做一样简单

$('.elements').on('lookup.unveil', fn);

其中.unveil只是插件的自定义命名空间,该事件可以通过执行在适当的时间触发

$('.elements').trigger('lookup.unveil');

由于它不是一个本地事件,所以它不会真正被其他任何事情触发。