5

一些快速背景

我正在构建一个在某些区域使用 html 网络视图的 iOS 应用程序。我想确保这些页面上的 html 按钮在外观和感觉上都尽可能像 iOS 按钮。为此,我想要一个点击状态,以便在点击时按下 html 按钮。现在在 HTML 中这很容易。您只需为 :active 或 :hover 或其他设置样式。我实际上已经定义了这个。然而,在 iOS 中,这些状态不会随时参与 - 至少在正常情况下是这样。所以我的目标是编写一个小脚本,为按钮添加一个类来改变它在touchstart上的外观。

问题

然而,事实证明我不需要那么复杂......纯属偶然,我使用以下代码进行了测试:

document.addEventListener('touchstart', function(event) {
    console.log("test");
}, true);

我对 javascript 和 jQuery 非常熟悉,所以我想做的就是检查我的语法并确保在我点击按钮时触发了 eventListener。令我惊讶的是,css 中按钮的 :active 状态被触发(以及 :hover 状态)。该代码...解决了我的问题!

我的问题

所以这是我的问题:上面的代码有效吗?我的意思是,这样做不好吗?就好像空的 eventListener 只是触发了桌面浏览器已经提供的行为。使用这种方法有什么问题吗?我是绿色的,但我不想养成坏习惯。如果这是一种不好的编码方式,我不想使用它。

感谢你们能给我的任何见解!

4

1 回答 1

1

我个人认为空事件侦听器没有任何问题(除了函数调用的开销 --- 这在这里听起来可以忽略不计)。我建议你利用 jQuery 的noop功能,但如果你必须添加一个事件监听器但让它什么都不做:

$(document).on('touchstart', $.noop);

// or

document.addEventListener('touchstart', $.noop);
于 2012-10-03T17:44:12.793 回答