Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Разные обработчики событий onclсick и ondblclick


Автор: voronov 7.10.2006, 18:31
Код

<img onclick="alert('1')" ondblclick="alert('2')">

При етом вызывается только обработчик события oncick.
Как можно совместно использовать ети 2 события

Заранее спасибо за ответ....

Автор: AKS 7.10.2006, 19:12
voronov 
Именно alert мешает Вам понять суть происходящего. Попробуйте так, и ситуация должна немного проясниться:
Код

<img onclick="test('click')" ondblclick="test('dblclick')">

Код

function test(s) {
  window.status += ' ' + s;
}


Автор: voronov 7.10.2006, 19:22
Конечно, обработчик ondblclick тоже вызывается, но проблема то в том что сначала вызывается обработчик для onclick.  Мне же нужно что бы при двойном щелчке вызывался именно обработчик для него

Автор: AKS 7.10.2006, 19:50
Цитата(voronov @ 7.10.2006,  19:22)
... проблема то в том что сначала вызывается обработчик для onclick.

Это не проблема, а закономерность. Но, конечно же, эту закономерность можно обойти. Например, это можно сделать, установив задержку вызова обработчика события "клик" при помощи метода setTimeout, а для обработчика dblclick (если такое событие вдруг произойдет) установить его отмену...

Автор: voronov 7.10.2006, 20:06
Цитата

задержку вызова обработчика события "клик" при помощи метода setTimeout

Да вроде решение нормальное, но какую временную задержку стоит установить?

Автор: AKS 7.10.2006, 20:11
voronov
Выбирайте методом "тыка" (т.е. - воля ваша)...

Автор: voronov 7.10.2006, 20:31
Здесь проблема в том что все зависит от мощьности компа и загруженности системы...
Но, к сожелению, другого решения вроде нет...

Спасибо за совет...

Автор: 12345c 7.10.2006, 22:32
Нет, в Win есть индивидуальные настройки скорости двойного клика, они определяют это время. Доступа к ним через JS, похоже, нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)