[英]How to disable mouse left click?
我想禁用鼠標左鍵單擊。 我使用以下腳本但不起作用。
<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>
幫我。 謝謝你的努力。
你錯了。 您想要禁用按鈕(enabled = false),而不是捕獲鼠標單擊。
使用該樣式的處理程序時,從處理程序代碼返回false
:
<a4j:commandButton value="TestButton" onclick="alert('button clicked'); return false;"/>
正如theatrus所說 ,但是,如果你的目標是禁用按鈕,那么最好實際禁用按鈕而不是阻止它的點擊。 但就你的問題“如何禁用左鍵單擊”而言,這就是答案。
更徹底的是,有兩種不同的方法來附加事件處理程序:
DOM0(您使用的樣式):從處理程序代碼返回false
以停止事件(防止它冒泡到其他元素)並阻止默認操作:
<someElement onclick="return false;">
DOM2(使用JavaScript代碼):DOM2處理程序通過addEventListener
(或IE上的attachEvent
)附加。 這是一個例子,假設一個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;
}
}
一些參考資料:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.