touchend 处理程序触发两次

2024-03-25

在 iOS 上的 web 应用程序上,我有一堆仅响应 touchend 的按钮(作为移动 safari 中点击延迟的快捷方式)。当我在处理程序中添加警报时,随后点击页面上的任何其他按钮都会触发此原始处理程序,即使它们有自己的处理程序。下面是一些说明问题的示例代码:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />

<script type="text/javascript">

function clickAlert(evt) {
    alert('btn clicked');
}

function clickData(evt) {
    var div;

    div = document.getElementById('data');
    div.innerHTML += 'btn2 click: ' + (new Date().getTime()) + '<br/>';
}

function loadHandler() {
    var btn;

    btn = document.getElementById('btn-click-alert');
    btn.addEventListener('touchend', clickAlert, false);
    btn = document.getElementById('btn-noclick');
    btn.addEventListener('touchend', clickData, false);
}

window.addEventListener('load', loadHandler, false);
</script>

</head>
<body>

<button id="btn-click-alert">Click to alert</button>
<button id="btn-noclick">No alert here</button>
<div id="data"> </div>
</body>
</html>

有人可以帮忙吗?

Thanks!


我相信触摸端触发的视觉全页警报会干扰触摸事件周期。尝试在屈服于 DOM 后调用警报。例如。

setTimeout(function() {
    alert('btn clicked');
}, 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

touchend 处理程序触发两次 的相关文章

  • 缩短node.js和mongoose中的ObjectId

    我的网址目前如下所示 http www sitename com watch companyId 507f1f77bcf86cd799439011 employeeId 507f191e810c19729de860ea someOtherI
  • 下划线 where 或条件(下划线、lodash 或任何其他解决方案)

    我实现了一个混合来添加 或 条件与 where var arr a 1 b 4 a 5 a 6 a 11 mixin or function obj arr condition return chain arr where conditio
  • 如何识别当前打开的每个单独的浏览器窗口?

    如何使用 javascript 唯一地识别当前为所有主要浏览器打开的每个单独的浏览器窗口 让我解释一下我需要了解的内容 并考虑以下场景 我有 3 个当前打开的浏览器窗口 任何现代浏览器 即 Chrome Firefox 等 每个窗口都包含多
  • 为什么用 < 对 JS 数字数组进行排序有效?

    在 JavaScript 中对数字数组进行排序时 我不小心使用了 lt 代替通常 https stackoverflow com questions 1063007 how to sort an array of integers corr
  • jQuery:在 jQuery 对象中存储附加/额外的数据/信息?

    在 jQuery 对象中存储额外的数据是否可能且明智 现在我有包含一些数据的对象 但这些对象也有该数据的视觉表示 这可行 但我有很多代码来保持它们同步 例如 如果您从 dom 中删除一个对象 我还必须从对象数组中删除相关对象 删除相当简单
  • javaScript从单个值数组返回一个新的成对值数组[重复]

    这个问题在这里已经有答案了 可能的重复 将数组分割成块 https stackoverflow com questions 8495687 split array into chunks 我正在尝试将值数组转换为新的配对值数组 例如我需要转
  • 如何将身份验证详细信息传递给 iframe 内的应用程序?

    我有一个网页 想在其中显示詹金斯的网页 因此使用iframe like But http xxx xxx xx xx 8080 view Nightly 20Builds 20 打开登录页面 因此无法直接显示内容 其实我想在没有登录的情况下
  • 解密签名并验证 JWT

    我知道还有其他库可以让我更轻松地使用 JWT 在 Node js 中 在本例中 我使用 crypto js 以手动方式学习 JWT 以下给了我令牌 var header alg HS256 typ JWT var wordArrayHead
  • 如何编写具有依赖状态的 redux 减速器

    我正在开发一个 React Redux 应用程序 它允许将 小部件 添加到页面并在 2D 空间中进行操作 要求可以同时选择和操作多个小部件 我当前状态树的简化版本如下所示 widgets widget 1 x 100 y 200 widge
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 将 Blob 设置为 iframe 的“src”

    以下代码在 Chrome 中完美运行 但它不适用于 IE 有人可以告诉我这里出了什么问题吗 iframe src 也设置为 blob 如下所示
  • 使用 webpack 保留输出目录中的文件夹结构

    我有以下文件夹结构 index html app index tsx 与 webpack 捆绑后 我希望有以下输出目录 并将bundle js注入到index html中 dist index html dist app bundle js
  • 重写node.js中其他模块中的函数

    我正在尝试在 Node js 应用程序中使用 nodeunit 存根函数 这是我正在尝试做的事情的简化版本 In lib file js var request require request var myFunc function inp
  • 如果没有其他函数链接到承诺,则默认行为

    我想打开一个 确认您要取消对话框 如果没有链接其他功能 则默认导航回页面 window history back 如果我传递回调 我可能会这样做 function openCancelModal form callback if form
  • Angular 2.0 路由 - TS 2305 ...没有导出成员“ModulewithProviders”

    我正在关注一个角度2 0教程在 Angular JS 官方上site https angular io docs ts latest tutorial toh pt5 html并在路由练习结束时陷入困境 该代码上次有效 但前几天我点击 np
  • 如何沿着 Parse Promise 链传递额外数据[重复]

    这个问题在这里已经有答案了 在我的 Parse Cloude 代码中 我需要运行几个连续的查询 每个查询都使用 find Example var promise firstQuery get objectId then function r
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • 动态添加项目到放大弹出画廊

    有没有办法动态添加图库项目华丽的弹出窗口 http dimsemenov com plugins magnific popup 那已经开放了 或更新当前项目 找不到关于 in 的任何内容插件文档 http dimsemenov com pl
  • javascript:新日期,缺少年份

    我打电话给 new Date Jan 4 发现默认年份是2001年 a new Date Jan 4 Thu Jan 04 2001 00 00 00 GMT 0500 EST 有什么办法可以将默认年份设置为 2011 年吗 更新 我知道我
  • 在不调用“then”的情况下解决 Promise

    我有这段代码 它是我为一个名为 Poolio 的 NPM 模块编写的小型 API 的一部分 对于那些支持错误优先回调和承诺的人来说 我遇到的问题似乎是一个常见问题 我们如何在支持两者的同时保持一致的 API 和 API 的一致返回值 例如

随机推荐

  • WPF C# 列表框外部滚动按钮

    您好 有一个列表框 我想要外部按钮来滚动列表框 我怎样才能实现这个目标 感谢您的帮助和示例 添加按钮点击处理程序 private void buttonUp Click object sender RoutedEventArgs e if
  • 干扰者:日记示例

    我对关于日志记录步骤的最常见 或推荐 disruptor 实现感到好奇 我最常见的问题是 它是如何实际实现的 通过示例 使用 JPA 明智吗 常用的数据库是什么 已经使用disruptor实施项目的社区 在中间处理程序 EventProce
  • Amazon S3 避免覆盖同名的对象

    如果我将文件上传到 S3 其文件名与存储桶中对象的文件名相同 则会覆盖该文件 有哪些选项可以避免覆盖具有相同文件名的文件 我在存储桶中启用了版本控制 认为这可以解决问题 但对象仍然被覆盖 我上面的评论不起作用 我以为WRITEACL 也适用
  • 如何从标准输入读取输入并强制编码?

    目标是不断地阅读stdin并强制执行utf8在Python2和Python3中 我尝试过以下解决方案 以与 python2 和 python3 兼容的方式将字节写入标准输出 https stackoverflow com questions
  • ER_CON_COUNT_ERROR:node-mysql 中连接过多错误

    我是节点初学者 以下是我尝试使用 Node mysql 执行的代码 但它一直给我这个错误 error connecting Error ER CON COUNT ERROR Too many connections CODE var siz
  • 在服务器上找不到 Git LFS 文件

    我们一直在使用 Git 和由我们自己的 Gitlab 实例托管的 git lfs 有时 当某个特定用户推送文件时 其中一些文件 似乎是 png 文件 不会进入 LFS 存储 而是添加到 git 中 当这种情况发生在他们的机器上时 我还无法看
  • 在 http 请求中使用 `retryWhen`

    我已经延长了Http类来设置默认标头并处理 angular2 应用程序内所有请求的错误 我想使用retryWhen 对某些错误重试请求 哪些错误应该retryWhen重试请求以及出现哪些错误时应停止 Injectable export cl
  • java中内部类和局部内部类有什么区别?

    如果一个类是本地内部类 这是否意味着它位于另一个类的方法内部 或者是否意味着它只是在某个地方的另一个方法中定义 例如 在下面的代码中 MenuListener 是否被视为内部本地类 import java awt import java a
  • iOS:是否可以同时从耳机和扬声器发送音频?

    我们希望从耳机插孔发送一些串行数据 但仍然希望能够从扬声器播放音频 是否可以将输出发送到两者 如果是这样 是否可以向每个发送不同的音频 据我所知还没有 您可以获得有关路由何时更改 即当有人连接耳机线时 的编程通知 但您无法指定用于输出的设备
  • 我想对 dict 进行子类化并设置默认值

    我需要创建一个特殊的 dict 子类 在其中我想为一组键设置默认值 我似乎无法找到执行此操作的正确语法 这是我一直在尝试的 class NewDict dict Key1 stuff Key2 Other stuff NoList Nada
  • 从GridView中获取特定列的总计值

    Him 我正在使用 ASP NET VB NET 和 SQL Server 2012 我有一个 GridView 列 其中包含 3 个字段和 1 个模板字段 如下所示
  • 如何使用自制程序安装 Elasticsearch 5.3.1

    我之前已经使用自制软件在我的 Mac 上安装了 elasticsearch 5 3 1 homebrew 上最新的 elasticsearch 现在是 5 5 0 因此任何运行brew 安装的新团队成员都会选择该版本 我注意到从 elast
  • 根据容器大小进行字体缩放

    我很难理解字体缩放 我目前有一个带有正文的网站font size100 100 但什么 这似乎是按 16 像素计算的 我的印象是 100 在某种程度上指的是浏览器窗口的大小 但显然不是 因为无论窗口大小调整为移动宽度还是成熟的宽屏桌面 它始
  • UITableview 的图像滚动速度非常慢

    我有一个 UITableView 它从服务器下载其表格视图单元格图像 我观察到表格滚动非常慢 我认为这可能是由于下载造成的 但我意识到下载完成后表格仍然滚动缓慢 并且图像图标大小非常小 代码 UITableViewCell tableVie
  • 设置MessageBox的位置?

    我想使用 MessageBox 或类似的 打印一条消息 我还想控制该框在屏幕上的确切位置 但在 MessageBox 的描述中找不到任何允许您控制该位置的内容 我错过了什么 如果无法使用MessageBox 那么有没有替代方案 由于过于复杂
  • 检测点击了哪个提交按钮

    我知道这个问题听起来很像其他问题 但我发誓我在任何地方都找不到正确的解决方案 我有一个具有多个提交按钮的旧表单 如果单击其中一个 我需要进行一些客户端验证并可能停止提交 如果单击另一个 我不需要进行此验证 我发现如果我创建一个 submit
  • 如何借助 XSLT 转义 XML 字符?

    我需要仅借助 XSLT 转换从 XML 节点内部取消转义 XML 字符 我有
  • 字符串是否匹配 glob 模式

    我有一系列路径 比方说 Users alansouza workspace project src js components chart Graph js 另外 我在配置文件中有一个条目 其中包含通配符 glob 格式的该路径的附加属性
  • Azure Databricks:访问防火墙后面的 Blob 存储

    我正在从 Azure Databricks 笔记本读取 Azure Blob 存储帐户 第 2 代 上的文件 两项服务均位于同一地区 西欧 一切正常 除非我在存储帐户前面添加防火墙 我选择允许 受信任的 Microsoft 服务 但是 现在
  • touchend 处理程序触发两次

    在 iOS 上的 web 应用程序上 我有一堆仅响应 touchend 的按钮 作为移动 safari 中点击延迟的快捷方式 当我在处理程序中添加警报时 随后点击页面上的任何其他按钮都会触发此原始处理程序 即使它们有自己的处理程序 下面是一