gpt4 book ai didi

javascript - 是否有使用事件委托(delegate)的 Javascript "tap"事件库?

转载 作者:行者123 更新时间:2023-11-29 14:58:55 25 4
gpt4 key购买 nike

理想情况下,我可以执行 $(document.body).on("tap", "#myElement", this.eventHandler);

但是 jQuery 还没有做到这一点。

我看到了很多图书馆 -- https://github.com/bebraw/jswiki/wiki/Touch .该页面上有一长串列表。

他们似乎都使用老式的事件监听。例如,$("#element").touchLibraryThingy(); $("#element").bind("tap")。等同于addEventListener

这对于 ID(Sorta)来说非常好,但是当我有 50 个列表项时,它们都有事件,我不希望旧 Android 上的某个人有 50 个事件监听器。出于性能原因!

有人知道使用完成的事件委托(delegate)的库吗?

这个 stackoverflow 问题很相似,但不是事实 -- Extend jQuery's .on() to work with mobile touch events

最佳答案

看起来像帖子中提到的 blob Extend jQuery's .on() to work with mobile touch events实际上可以解决问题……几乎。

图书馆链接! https://github.com/jvduf/jquery-mobile-events/blob/master/jquery.mobile.events.js

陷阱桌面上的“点击”似乎并不能阻止默认设置。我的 Web 应用程序中有奇怪的滚动行为和断断续续的菜单动画。

为了解决这个问题,我在应用的命名空间中创建了一个全局属性:

var R = window.R = window.R || {};
R.touchEvent = ('ontouchstart' in window') ? "tap" : "click";
window.$body = $(document.body);

然后我所有的事件监听器都这样做:

$body.on(R.touchEvent, ".myHellaLongListItems", this.eventHandler);

完成!现在我们都可以拥有一个非常棒的移动网站。

关于javascript - 是否有使用事件委托(delegate)的 Javascript "tap"事件库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com