2011-05-06 23 views
0

我已经有很多为Web应用程序编写的AJAX代码,并没有考虑到双击某些事物会导致的问题。我已经为敏感的AJAX调用实现了一个“inprogress”变量,这样它就不会被用户双击搞砸了,但我想知道是否有一种简单的方法来禁用所有内部任何地方(任何元素)的所有双击整个网页的主体,而不是为每个特定的元素单独做。Javascript/jquery,禁用网页内任何地方的所有双击?

感谢您的任何意见

+0

你是否确实是指两次点击含义中的“双击”,它们之间几乎没有任何停顿,或者在连接到ajax调用的按钮上单击2次以上,因此会在旧的,等等....? – ampersand 2011-05-06 02:45:15

+1

我的意思是双击时,你必须双击Windows桌面上的图标来打开应用程序/文件。虽然我自己不这样做,但是我们的一些用户在这些操作中存在问题,因此他们双击了网络应用程序 – Rick 2011-05-06 20:43:27

回答

4

尝试这样的东西疯狂:

$("*").dblclick(function (event) 
{ 
    event.preventDefault(); 
}); 

从理论上讲,它会捕捉双击事件的任何元素,然后基本上什么也不做(取消默认操作) 。

+0

+1 Bah上的所有内容!你打了我几秒钟! – Chad 2011-05-06 01:20:54

+0

现在你可能会得到我的选票。 ;-) – 2011-05-06 01:21:30

+0

不幸的是,这似乎并没有工作,不太清楚为什么我把它放在'$(document).ready(function(){}'有没有人证实这对他们有效? – Rick 2011-05-06 20:42:23

2
$('*').dblclick(function(event) { event.preventDefault(); return false; }); 

应该处理它,但是可能有更好的解决方案。

+0

返回虚假的好处是什么? – Mohsen 2011-05-06 02:30:47

+0

@Mohsen它在正常的javascript事件处理程序中执行与preventDefault()类似的任务。我通常也会这样做,以防在preventDefault()和浏览器之间存在兼容性问题。虽然我不知道这种情况是否真的发生过。 – Chad 2011-05-06 02:39:36

0

如果你没有绑定事件双击,双击将不会做任何事情。这是它自己的事件。
Click和DoubleClick是不同的事件。

+0

我一直没有约束,我已经使用onclick了很多事情,所以肯定会采取两个点击和导致问题,我想让应用程序尽可能服务器端重,所以我这样做轻松阅读代码,因为我不是一个大型javascripter – Rick 2011-05-06 15:35:11

+0

@Rick:@Chad答案有什么问题? – Naor 2011-05-06 15:50:54