Как различить щелчок левой и правой кнопкой мыши с помощью jQuery

Ответ на вопрос о том, почему вы получили сообщение об ошибке, уже ответили многие пользователи здесь. Мой ответ о том, как исправить и использовать его как есть.

Обратитесь к этой ссылке .

  1. Откройте клиент MySQL (или клиент MariaDB ). Это команда командной строки.
  2. Он спросит ваш пароль, введите правильный пароль.
  3. Выберите свою базу данных, используя эту команду use my_database_name;

База данных изменена

blockquote>
  1. set global innodb_large_prefix=on;

Запрос ОК, 0 строк затронуты (0.00 сек)

blockquote>
  1. set global innodb_file_format=Barracuda;

Query OK, 0 строк затронуты (0,02 сек)

blockquote>
  1. Перейдите в свою базу данных на phpMyAdmin или что-то вроде этого для удобства управления. > Выберите базу данных> Просмотреть структуру таблицы> Перейдите на вкладку «Операции». > Измените ROW_FORMAT на DYNAMIC и сохраните изменения.
  2. Перейдите на вкладку структуры таблицы> Нажмите кнопку «Уникальная».
  3. Готово. Теперь у него не должно быть ошибок.

Проблема этого исправления заключается в том, что вы экспортируете db на другой сервер (например, с локального хоста на реальный хост), и вы не можете использовать командную строку MySQL на этом сервере , Вы не можете заставить его работать.

559
задан ErikE 7 October 2013 в 21:29
поделиться

4 ответа

Начиная с версии jQuery 1.1.3, event.which нормализует event.keyCode и event.charCode , поэтому вам не нужно беспокоиться о совместимости с браузером. вопросы. Документация по event.which

event.which даст 1, 2 или 3 для левой, средней и правой кнопок мыши соответственно, поэтому:

$('#element').mousedown(function(event) {
    switch (event.which) {
        case 1:
            alert('Left Mouse button pressed.');
            break;
        case 2:
            alert('Middle Mouse button pressed.');
            break;
        case 3:
            alert('Right Mouse button pressed.');
            break;
        default:
            alert('You have a strange Mouse!');
    }
});
885
ответ дан 22 November 2019 в 22:11
поделиться

$("#element").live('click', function(e) {
  if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
       alert("Left Button");
    }
    else if(e.button == 2){
       alert("Right Button");
    }
});

Обновление для текущее состояние вещей:

 var $ log = $ ("div.log"); $ ("div.target"). on ("mousedown", function () {$ log.text ("What:" + event.which); if (event.which === 1) {$ (this). removeClass ("справа посередине"). addClass ("left");} else if (event.which === 2) {$ (this) .removeClass ("left right"). addClass ("middle");} else if (event.which === 3) {$ (this) .removeClass ("левый средний"). addClass ("right");}}); 
 div.target {граница: 1px сплошной синий; высота: 100 пикселей; ширина: 100 пикселей; } div.target.left {цвет фона: # 0faf3d; } div.target.right {цвет фона: # f093df; } div.target.middle {цвет фона: # 00afd3; } div.log {выравнивание текста: слева; цвет: # f00; } 
  
30
ответ дан 22 November 2019 в 22:11
поделиться

Вы можете легко определить, какая кнопка мыши была нажата, проверив свойство which объекта события для событий мыши:

/*
  1 = Left   mouse button
  2 = Centre mouse button
  3 = Right  mouse button
*/

$([selector]).mousedown(function(e) {
    if (e.which === 3) {
        /* Right mouse button was clicked! */
    }
});
83
ответ дан 22 November 2019 в 22:11
поделиться

Мне кажется, что небольшая адаптация ответа TheVillageIdiot была бы чище:

$('#element').bind('click', function(e) {
  if (e.button == 2) {
    alert("Right click");
  }
  else {
    alert("Some other click");
  }
}

РЕДАКТИРОВАТЬ: JQuery предоставляет атрибут e.which , возвращающий 1, 2, 3 для левого, среднего и правого щелчка соответственно. Таким образом, вы также можете использовать if (e.which == 3) {alert ("щелкните правой кнопкой мыши"); }

См. Также: ответы на «Запуск события onclick с помощью средней кнопки мыши»

8
ответ дан 22 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: