如何在jquerymobile中侦听两个事件并只启动一个函数
how to listen for two events and only fire one function in jquery mobile?
我有这个:
$('li.clickable').live('click tap', function() {
console.log("hello");
)};
如果我这样听并点击列表项,两个事件正在启动=我收到两个"你好"。我需要每次"点击"都启动一个功能,但只能启动一次!
有办法做到这一点吗。我不能使用"一",因为第一次点击后功能会静音,不是吗?
谢谢你的指点!
编辑:
如果我省略了点击或点击,函数仍然会触发两次。有什么办法可以防止这种情况发生吗?
- http://jquerymobile.com/demos/1.0.1/docs/api/events.html
虚拟鼠标事件
我们提供了一组"虚拟"鼠标事件,试图抽象鼠标和触摸事件。这允许开发人员为基本鼠标事件注册监听器,例如mousedown、mousemove、mouseup和click,插件将注意在后台将正确的侦听器注册到以最快的速度调用该设备的侦听器。在里面触摸环境中,插件保留了事件触发的顺序在传统的鼠标环境中可见,因此例如,vmouseup总是在vmousedown之前调度,并且在vclick之前调度vmousedon,等等。虚拟鼠标事件还规范了如何协调信息是从事件中提取的,因此基于触摸环境中,坐标可从页面X、页面Y、,screenX、screenY、clientX和clientY属性,直接在事件对象。vclick
用于处理触摸端或鼠标点击事件的规范化事件。在触摸设备上,此事件在vmouseup之后发送。
尝试使用:
$('li.clickable').live('vclick', function() {
console.log("hello");
)};
您还可以测试哪个事件正在触发
$('li.clickable').live('click tap', function(e) {
console.log("Which Event: "+e.which + " Event Type: "+e.type);
)};
由于如果只监听click
,您的操作也会触发两次,因此您可能会遇到一些用户或系统异常。
当电容式触摸屏开始普及时,我们遇到了各种各样的问题,人们(例如戴手套的人)会开始双重触发。防止用户双击的方法可能有助于防止系统双击:
//global scope:
var triggertimeouts={}
和
$('li.clickable').live('click tap', function() {
if (!triggertimeouts.myclicktap) {
triggertimeouts.myclicktap=window.setTimeout('triggertimeouts.myclicktap=false;',250);
console.log("hello");
}
)};
相关文章:
- 从控制器返回后Ajax启动事件激发
- window.on.scroll事件未启动
- 如何在所有ng点击事件AngularJS上启动一个方法
- 触摸启动事件未在iframe iOS 6中启动
- 事件侦听器未在chrome扩展中的options.js中启动
- 模型更改事件不会启动
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 点击启动弹出事件未显示
- Ember视图未响应用户启动的事件
- 无线电输入更改的jQuery事件未启动
- Javascript onclick事件在第一次单击时未启动
- jQuery事件侦听器多次启动
- 一次点击,两次'单击'事件已启动
- Javascript onClick事件未启动
- 点击事件启动,但ajax未发生
- ajax,用两个事件启动函数
- 为什么不是't我的更改事件启动
- 我应该在等待事件启动时明确创建一个承诺吗
- 引导程序3:当类的点击事件启动时,popover最初不会出现
- JQuery UI对话框从输入焦点事件启动时不会关闭