Kri*_*ish 7 mobile jquery onclick phonegap-build
我正在使用Phonegap来构建我的iOS/Android应用程序 - 基本上是一个可以在我的笔记本电脑键盘上模拟几个键的遥控器.(控制视频播放等).
由于它是一个网页,我点击的图像连接到笔记本电脑上的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)
{ }
});
});
Run Code Online (Sandbox Code Playgroud)
我使用该警报来检查事件是否被多次触发.警报只弹出一次,这意味着该事件只被触发一次.所以它只需点击一次(触摸)=>一个事件=>但多个请求!
我用这段代码检查服务器响应:
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);
...
Run Code Online (Sandbox Code Playgroud)
当从移动设备请求时,输出在控制台中出现三次,但是当我的笔记本电脑的浏览器请求时,输出只有一次.
我不明白为什么,也不确定如何防止它.有什么指针吗?
用于console.log("called")检查按钮被调用的次数。要在 chrome 中查看输出,请在“视图”->“开发人员”->“javaScript 控制台”下查看。只会alert("Play");运行一次。