Javascript 如何完全禁用任何鼠标单击
在用户点击“登录”按钮和其他事件之后,我制作了一个加载脚本——让用户知道他们必须等待(直到ajax回复) 如何在Javascript 如何完全禁用任何鼠标单击,javascript,jquery,onclick,mouseevent,Javascript,Jquery,Onclick,Mouseevent,在用户点击“登录”按钮和其他事件之后,我制作了一个加载脚本——让用户知道他们必须等待(直到ajax回复) 如何在div id=“doc”上禁用任何鼠标单击(右键单击、左键单击、双击、中键单击、x键单击)? 我想将该代码添加到loading.js HTML <html> ... <body> <div id="doc"> <div id="content"> ... <input type="button" value="
div id=“doc”
上禁用任何鼠标单击(右键单击、左键单击、双击、中键单击、x键单击)?
我想将该代码添加到
loading.js
HTML
<html>
...
<body>
<div id="doc">
<div id="content">
...
<input type="button" value="Login" id="login" />
...
</div id="content">
</div id="doc">
</body>
</html>
jQuery
$(document).ready(function()
{
//AJAX
$("#login").click(function()
{
load_bar(1); //DISABLE clicks and show load_bar
$(":input").attr("disabled", true);
$.post(
...
function(data)
{
...
load_bar(0); //ENABLE clicks and hide load_bar
...
} //END: if:else
}); //END:$.post
...
}); //END:ajax
}); //END:jQuery
您可以覆盖一个大的半透明的
,它需要所有的点击。只需使用此样式将新的
附加到
:
.overlay{
背景色:rgba(1,1,1,0.7);
底部:0;
左:0;
位置:固定;
右:0;
排名:0;
}
类似于:
$('#doc').click(function(e){
e.preventDefault()
e.stopImmediatePropagation() //charles ma is right about that, but stopPropagation isn't also needed
});
我应该做这项工作
您还可以使用替换来绑定更多鼠标事件:
编辑:
将此添加到feezing部分
$('#doc').bind('click mousedown dblclick',function(e){
e.preventDefault()
e.stopImmediatePropagation()
});
在解冻过程中:
$('#doc').unbind();
要禁用所有鼠标单击
var event = $(document).click(function(e) {
e.stopPropagation();
e.preventDefault();
e.stopImmediatePropagation();
return false;
});
// disable right click
$(document).bind('contextmenu', function(e) {
e.stopPropagation();
e.preventDefault();
e.stopImmediatePropagation();
return false;
});
要再次启用它,请执行以下操作:
$(document).unbind('click');
$(document).unbind('contextmenu');
冻结UI的最简单方法是使AJAX调用同步
通常,同步AJAX调用无法达到使用AJAX的目的,因为它会冻结UI,但如果您想阻止用户与UI交互,请执行此操作。您可以在正文或特定div中添加简单的css3规则,使用
指针事件:无
属性。如何将加载.jpg
($(“#加载”)
)添加到此div(.overlay
)-屏幕中心处?@Omar:背景图像:url('loading.jpg');背景重复:无重复;背景位置:中心代码>将是一种方式。另一种方法是添加文本对齐:居中在.overlay
上添加code>,然后在.overlay
中添加一个新图像(#加载
),样式为边距顶部:50%;位置:相对位置;顶部:-(半幅图像的高度)px
。给加载.jpg
一个顶部,左侧等于parent.height()/2-load.height()/2
和parent.width()/2-load.width()/2
respectively@minitech背景位置:中间有什么区别吗
和文本对齐:居中…
?@minitech它也会自动与窗口的大小调整更改对齐…邪恶!!!这是最后一个提琴(我添加了一些角色定制)+1个好主意:)不过,如果用户沮丧地按了一串键,它们不会在完成后都回来吗?@gilly3我不知道你在说什么:,(我觉得这听起来有些胡言乱语(太高级了)我是一个初学者,你能详细说明一下吗?我不知道你可以禁用整个文档上的点击!我想我不需要不会禁用中间点击的
毕竟=)。此外,在事件从实际元素冒泡出来之后,将调用在文档级别设置的事件处理程序。(您正在调用stopPropagation()
在它已经传播到顶部之后。)没错,绑定到文档下方元素的JS处理程序仍然会启动,但它确实会停止链接导航和表单提交等html可点击事件。它也不会禁用鼠标中键,我也不知道跨浏览器禁用它的方法。但是OP可能可以通过混合使用我的方法和下面描述的css覆盖来实现他想要的@minitec@charles-妈妈,我想你是对的!混合方法是更好的选择。@charles ma即使有了这段代码,它仍然在点击IE8:@alonisser我正在使用charles ma和minitech解决方案。不幸的是,我这个网站不允许2票>\这个解决方案太棒了,所以easyAlso会禁用所有光标事件,比如更改指针。似乎只推荐用于SVG应用程序。Genius。我已经寻找了几个小时的解决方案——这是迄今为止最实用、最简单的解决方案。
$(document).unbind('click');
$(document).unbind('contextmenu');