如何禁用鼠标左键点击?
问题描述:
我想禁用鼠标左键单击。我使用下面的脚本但不工作。如何禁用鼠标左键点击?
<h:form>
<a4j:commandButton value="TestButton" onclick="alert('button cliked')"/>
</h:form>
JavaScript是:
<script type="text/javascript">
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK);
document.onmousedown = clickIE4;
document.onmouseup = clickIE4;
document.onclick = clickIE4;
function clickIE4()
{
return false;
}
</script>
帮助我。 感谢您的努力。
答
你正在错误地做这件事。你想禁用按钮(启用= false),而不是捕获鼠标点击。
答
当使用处理器的这种风格,从处理程序代码返回false
:
<a4j:commandButton value="TestButton" onclick="alert('button clicked'); return false;"/>
作为theatrus said,不过,如果你的目标是禁用按钮,你最好还是实际上禁用按钮,而不是防止点击它。但就您的问题而言,“如何禁用左键点击”,这就是答案。
更彻底,有两种不同的方式附加事件处理程序:
DOM0(你使用的样式):在处理程序代码返回false
停止活动(防止起泡起来,其他的元素)和防止默认动作:
<someElement onclick="return false;">
DOM2(用JavaScript代码):DOM2处理程序经由addEventListener
附接(或attachEvent
,上IE)。下面是一个例子,假设一个元件与id
“foo” 的:
// Attaching:
var elm = document.getElementById("foo");
if (elm.attachEvent) {
elm.attachEvent("onclick", handler);
}
else if (elm.addEventListener) {
elm.addEventListener("click", handler, false);
}
// Handler:
function handler(event) {
// DOM standard is that `event` is an argument to the
// handler; IE uses a global event object instead.
// This line handles that.
event = event || window.event;
// Cancelling bubbling:
if (event.stopPropagation) {
// DOM standard
event.stopPropagation();
}
else {
// Older mechanism
event.cancelBubble = true;
}
// Preventing default action:
if (event.preventDefault) {
// DOM standard
event.preventDefault();
}
else {
// Older mechanism
event.returnValue = false;
}
}
一些基准物质:
不是' onclick =“alert(”button cliked“)”'语法错误?另外,出于好奇,你的用例是什么? – deceze 2010-06-28 05:47:55