Могу ли я обнаружить щелчок левой кнопкой мыши? Или Ctrl + щелчок правой кнопкой мыши?

Я пытаюсь определить, нажал ли пользователь левую кнопку мыши или правую кнопку + клавишу Ctrl, но я не уверен, как это сделать.

Я знаю, что просто обнаруживаю щелчок, я мог бы использовать

<li onClick=\"dosomething()\">

Есть ли функция, которую нужно сделать

<li onLeftClick=\"dosomething()\"> ?

person frames    schedule 01.12.2010    source источник
comment
Нет, я имею в виду щелчок левой кнопкой мыши. По умолчанию onClick ... эквивалентен щелчку правой кнопкой мыши. Итак, я хочу отфильтровать действие leftClick ...   -  person frames    schedule 01.12.2010
comment
Когда вы нажимали «добавить комментарий», какой кнопкой мыши вы пользовались?   -  person DampeS8N    schedule 01.12.2010
comment
@frames: Вы левша? onclick по умолчанию определяет основную кнопку мыши, которая находится слева для правой конфигурации (наиболее часто) и правой для левой сдал конфигурацию. Также обратите внимание, что некоторые браузеры не передают контекстный щелчок (не основная кнопка) на веб-страницу.   -  person Piskvor left the building    schedule 01.12.2010
comment
Писквор, я правша. Черт ... прости, ты был прав. Я был там просто глуп! Причина, по которой мне нужна функциональность щелчка правой кнопкой мыши, заключается в том, что в настоящее время я что-то делаю, когда пользователь щелкает левой кнопкой мыши, однако я хотел сделать и что-то еще, что, как я думал, было бы возможно, если бы я попросил их использовать их 'другой ' кнопка ...   -  person frames    schedule 01.12.2010
comment
Так оно и есть, если вы просите правильный. ;)   -  person DampeS8N    schedule 01.12.2010


Ответы (3)


С jQuery можно было сделать что-то вроде

$(document).click(function(e) { 
    if (e.button == 0) {
        // was the left button
        alert('clicked'); 
    }
});

А с обычным javascript должна быть какая-то переменная события, доступная в функции onClick

Возможно, это тоже поможет, но я не знаю, насколько он точен.

http://www.javascripter.net/faq/leftvsri.htm

person Not Available    schedule 01.12.2010

Вы можете проверить свойство button события.

Что вам определенно не понравится, так это то, что разные браузеры возвращают разные значения: ознакомьтесь с документацией для Firefox и IE . Таким образом, вам также нужно будет выполнить какое-то обнаружение браузера.

person Jon    schedule 01.12.2010

Вы смотрите не на ту сторону вещей. PHP является серверным, что означает, что он работает на серверах, а не на людях, посещающих ваш сайт. Когда кто-то посещает ваш сайт, посетитель (client) отправляет серверу запрос страницы. Сервер получает этот запрос и отправляет клиенту информацию. Однако, когда клиент щелкает мышью, на сервер (по умолчанию) ничего не отправляется.

Решение зависит от того, что вам нужно делать. Если вам нужно, чтобы скрипты PHP запускались, когда вы что-то щелкаете, рассмотрите возможность отправки асинхронных запросов через AJAX. Вы можете поместить свои вызовы AJAX в функцию dosomething (). http://www.ibm.com/developerworks/web/library/wa-ajaxintro1.html - хорошее место для начала. Если вы знакомы с jQuery, это очень простой вызов функции: http://api.jquery.com/jQuery.ajax/

person munchybunch    schedule 01.12.2010
comment
Я не вижу ссылки на php или ajax в его вопросе. Его пример - javascript, а вопрос помечен как javascript. Не уверен, почему вы думаете, что он смотрит не на ту сторону ... - person Allan Nienhuis; 01.12.2010
comment
Он был изменен): Раньше был PHP. - person munchybunch; 01.12.2010