0

这可能很简单,但我想进入这个查询的核心。

我正在为我的一个项目使用 jQuery Mobile 最新版本。按钮点击事件的响应有问题。

  1. 我必须双击按钮才能触发它的单击事件,并且开始处理按钮的单击事件处理程序需要时间。

查询 1:是 jQuery 搞砸了。

查询2:不能只单次点击就可以处理jQuery的点击事件处理程序。

我在互联网上搜索过,但没有找到合适的分辨率。

4

3 回答 3

10

如果您不喜欢延迟,请不要在 jQuery Mobile 中使用 click 事件。基本上 jQuery Mobile 点击事件有 300 毫秒的延迟,它可以是更大的事件。您可以使用 vclick 事件。这是一个特殊的 jQuery Mobile 点击事件,用于连接桌面点击和移动点击之间的差异。它不会遭受形式延迟。

或者您可以使用点击事件或 touchStart。

$(document).on('vclick', '#button', function(){ 
    console.log("click");
});

阅读我关于点击延迟的其他答案:在 jQuery mobile 中,tap 和 vclick 之间有什么区别?

于 2013-09-11T08:09:26.903 回答
1

当您在移动设备上使用 jQuery Mobile 查看网站时,点击事件有 300 毫秒的延迟。

确保你使用 jQuery Mobile 的Tap

另外,当我使用 jQuery Mobile 构建 web 应用程序时,我发现它很有帮助,e.preventDefault()因为如果你不这样做,如果你点击的元素在你的点击事件中消失,点击事件也可能在它下面的元素上触发。IE。.hide()

例子:

$('.button').on('tap', function(e){
      console.log('tapped');

      $(this).hide();
      e.preventDefault();
});
于 2013-09-11T08:15:17.283 回答
0

这对我有用,它强制 jquerymobile 的点击事件

$("#button").trigger('click');

来源:http: //jquerymobile.com/demos/1.0a2/experiments/api-viewer/docs/bind/index.html

于 2013-11-10T14:54:39.337 回答