gpt4 book ai didi

jQuery click - 防止移动设备中的多次点击

转载 作者:行者123 更新时间:2023-12-03 22:42:01 24 4
gpt4 key购买 nike

我正在使用 Phonegap 构建我的 iOS/Android 应用程序 - 基本上是一个可以模拟笔记本电脑键盘上的几个按键的 Remote 。 (控制视频播放等)。

由于它是一个网页,因此我的图像在单击时会连接到笔记本电脑上的 Java Socket 服务器。我面临的问题是,每次我单击一个按钮 - 只需一次(如暂停按钮),我就会看到在 java 控制台中触发了多个请求。但只有当我在手机中单击(触摸)时才会发生这种情况。当我在笔记本电脑的浏览器中尝试相同的操作时,它的行为符合预期(仅一个请求)。

我浏览了几篇文章,其中一般建议是使用“unbind()”和“off()”,但似乎没有任何效果。代码片段如下。

$("#play").off().on('click',function(){
//alert("Play");

jQuery.ajax({
type: "GET",
async: true,
url: 'http://'+ip+':10007/function=play?',
success: function (msg)
{ },
error: function (err)
{ }
});
});

我使用该警报来检查事件是否被多次触发。警报仅弹出一次,这意味着该事件仅触发一次。所以它只是一次点击(触摸)=>一个事件=>但是多个请求!

我正在使用这段代码检查服务器响应:

while(true) {                
Socket sock = servsock.accept();
System.out.println("Connection from: " + sock.getInetAddress());
Scanner in = new Scanner(sock.getInputStream());
PrintWriter out = new PrintWriter(sock.getOutputStream());
String request = "";
while (in.hasNext()) {
request = in.next( );
if (request.contains("function="))
{
inputLine = request.split("function=")[1];
System.out.println ("^^^^^" + inputLine);
...

当从移动设备请求时,输出在控制台中出现三次,但当从笔记本电脑的浏览器请求时,输出仅出现一次。

我不明白为什么,也不知道如何防止它。有什么指点吗?

最佳答案

解决此问题的另一种方法是使用单击按钮后即可设置的标志。然后您可以检查标志的值并返回 false;如果该值已设置。

//伪代码
- 最初将标志保持为 false。
- 单击时,检查标志值。
-- 如果标志已设置,则返回 false;
-- 如果未设置该标志,则设置该标志。
- 调用 success 方法后,再次将值重置为 false。

这至少可以解决多次调用的问题。另一个练习是确定为什么这只是设备上的问题。

关于jQuery click - 防止移动设备中的多次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39939524/

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