【问题标题】:How to disable mouse left click?如何禁用鼠标左键?
【发布时间】:2010-06-28 05:42:39
【问题描述】:

我想禁用鼠标左键单击。我使用以下脚本但无法正常工作。

<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>

帮帮我。 感谢您的努力。

【问题讨论】:

  • onclick="alert("button cliked")" 不是语法错误吗?另外,出于好奇,您的用例是什么?

标签: javascript jsf cursor


【解决方案1】:

你做错了。您想禁用按钮 (enabled=false),而不是捕获鼠标点击。

【讨论】:

    【解决方案2】:

    当使用该样式的处理程序时,从处理程序代码中返回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;
        }
    }
    

    一些参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      相关资源
      最近更新 更多