Вопрос

В моем серверном коде я динамически создаю таблицу и прямо сейчас добавляю следующий код для обработки щелчка по строке.

tr.Attributes.Add("onclick", "window.open('" + root + document.IPT_Name + "/" + document.IPT_Sub_Name + "/" + document.File_Name + "', 'mywindow', 'toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,copyhistory=no, resizable=yes')");

Есть ли способ заставить это работать только щелчком левой кнопкой мыши, а затем добавить другой атрибут к щелчку правой кнопкой мыши, чтобы перейти в другое место?

Это было полезно?

Решение

Вы можете это обнаружить, но есть некоторые проблемы, специфичные для браузера, на которые следует обратить внимание.Вот некоторый код из http://www.quirksmode.org/js/events_properties.html

function doSomething(e) {
  var rightclick;
  if (!e) var e = window.event;
  if (e.which) rightclick = (e.which == 3);
  else if (e.button) rightclick = (e.button == 2);
  alert('Rightclick: ' + rightclick); // true or false
}

Также есть плагин для jQuery который позволяет обнаруживать щелчки правой кнопкой мыши: http://abeautifulsite.net/notebook/68

Другие советы

Вот код, взятый из jQuery 1.3.2 с комментариями, объясняющими event.which и event.button.

// Add which for click: 1 == left; 2 == middle; 3 == right
// Note: button is not normalized, so don't use it
if ( !event.which && event.button )
    event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top