Как отключить щелчок левой кнопкой мыши? - PullRequest
2 голосов
/ 28 июня 2010

Я хочу отключить щелчок левой кнопкой мыши. Я использую следующий скрипт, но не работаю.

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

Помоги мне. Спасибо за ваши усилия.

Ответы [ 2 ]

6 голосов
/ 28 июня 2010

Вы делаете это неправильно.Вы хотите отключить кнопку (enabled = false), а не захватывать щелчки мыши.

3 голосов
/ 28 июня 2010

При использовании этого стиля обработчика, верните false из кода обработчика:

<a4j:commandButton value="TestButton" onclick="alert('button clicked'); return false;"/>

Как сказал theatrus , однако, если ваша цель - отключить кнопку, лучше отключить кнопку, а не предотвращать ее нажатие. Но с точки зрения вашего вопроса «как отключить щелчок левой кнопкой мыши» это ответ.

Более подробно, есть два разных способа присоединить обработчики событий:

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

Некоторые справочные материалы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...