Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: от 11 Декабря 2001, 10:06:00

Название: onmousedown?
Отправлено: от 11 Декабря 2001, 10:06:00
подскажите,пожалуйста...
как заставить скрипт выполняться >>>пока<<< на элементе формы нажата кнопка мыши, а не один раз после ее нажатия
Название: onmousedown?
Отправлено: Макс от 11 Декабря 2001, 14:51:26
Думаю здесь нужно два события отслеживать - onmousedown и onmouseup.

А алгоритм примерно такой:
1. Объявляешь переменную - например
var isUp="n" // кнопка не была отпущена

2. Делаешь такую функцию:
function doSomething()
{
while(isUp=="n")
{
// здесь пишешь текст скрипта
....

}
}

3. Кнопку выполняешь так:


Думаю так должно работать.
Название: onmousedown?
Отправлено: от 11 Декабря 2001, 20:49:40
Макс, спасибо за предложенную помощь
Идея, скорее всего, правильная. Но это решение не подходит, т.к. событие onmouseup не обрабатывается из-за зацикливания в while
:(
Пытаюсь найти работающий аналогичный скрипт, но безуспешно. Может есть еще к.-н. варианты
Название: no threads...
Отправлено: Oak от 11 Декабря 2001, 22:49:35
Так это всегда так и будет :)
Ты не можешь заставить скрипт выполнятся настолько долго!!!!!
Зато можешь его вызывать раз в секунду или чаще.

(IE, например вообще виснет, пока JS выполняется)

А чтобы запускать так, надо вместо while сделать

function doSomething()
                         {
/ здесь пишешь текст скрипта

if(isUp=="n") setTimeout("doSomething() ",1000); // eto 1na sekunda
}
Название: onmousedown?
Отправлено: от 11 Декабря 2001, 23:18:27
Теперь - > Работает!!!
Спасибо :))
Название: onmousedown?
Отправлено: от 14 Декабря 2001, 11:23:49
Работает, но не так, как хотелось бы (Чтобы кнопки работали, как у полосы прокрутки окна, только располагались отдельно).
Второе нажатие мыши не обрабатывается - setTimeout видимо виноват.
Вот мой "кривой" вариант скрипта:









Поможите, please :( --> :)
Название: onmousedown?
Отправлено: lodevar от 14 Декабря 2001, 12:18:03
Не понял... Что же не так работает?
Название: onmousedown?
Отправлено: от 14 Декабря 2001, 19:39:25
Цитировать
Не понял... Что же не так работает?


Это как DblClick, но только если после первого клика не отпускать кнопку мыши (быстро нажал-отпустил-нажал :) )  - не листает. А надо точь-в-точь (повторяюсь) как у кнопок полосы прокрутки, только на JavaScript

Мелочь, конечно. Но в скрипте все должно быть прекрасно, как и в человеке.  Эх, хорошо сказал...
Название: onmousedown?
Отправлено: Макс от 14 Декабря 2001, 20:27:50
Наверное для ondblclick свой обработчик нужен.
Название: onmousedown?
Отправлено: от 14 Декабря 2001, 20:43:46
Цитировать
Наверное для ondblclick свой обработчик нужен.


Но так ведь событие ondblclick обратывать и не надо. Кнопка же не отжата
Название: onmousedown?
Отправлено: от 14 Декабря 2001, 20:50:01
Цитировать
Но так ведь событие ondblclick обратывать и не надо. Кнопка же не отжата


Или с "не отжата" тоже считается "двойным кликом". Наверно, да (совсем плохой стал - сам с собой перепечатываюсь)

Пробовал уже - не ра-бо-та-ет
Название: onmousedown?
Отправлено: Oak от 15 Декабря 2001, 02:40:50







height="17" name="upButton" onmousedown="doUp()"
onmouseup="if(tmID) {clearTimout(tmID);tmID=null;}">

   
Название: onmousedown?
Отправлено: от 15 Декабря 2001, 21:43:07
Цитировать
Это как DblClick, но только если после первого клика не отпускать кнопку мыши (быстро нажал-отпустил-нажал  ) - не листает. А надо точь-в-точь (повторяюсь) как у кнопок полосы прокрутки, только на JavaScript


Oak, спасибо. Но эффект тот же.
MISSION IMPOSSIBLE
Название: onmousedown?
Отправлено: Oak от 16 Декабря 2001, 02:17:45
http://www.DanStainman.com/dynduo/

 -> DynWindow - polnocennoe okno so skrollerami.

http://www.ozones.com/  - tozhe okno so skrollerami

 vse na JS for NN4+IE
Название: onmousedown?
Отправлено: от 17 Декабря 2001, 21:58:38
в этих примерах скрипт, отвечающий за кнопки прокрутки окна ТОЧНО ТАКЖЕ НЕ ОБРАБАТЫВАЕТ НУЖНОЕ МНЕ СОБЫТИЕ, А ИМЕННО (устал уже повторять) onmousedown-onmouseup-onmousedown И НАЖИМАЕТСЯ ЭТО БЫСТРО КАК DBLCLICK НО НЕ ОТЖИМАЯ КНОПКУ МЫШИ !-!!-!!! если это не реализуется на JavaScript или никто из здесь присутствющих уважаемых программистов не знает КАК ЭТО СДЕЛАТЬ, пожалуйста, ТАК И СКАЖИТЕ
Название: onmousedown?
Отправлено: NAS от 17 Декабря 2001, 22:10:08
Цитировать
И НАЖИМАЕТСЯ ЭТО БЫСТРО КАК DBLCLICK НО НЕ ОТЖИМАЯ КНОПКУ МЫШИ


КАК МОЖНО НАЖИМАТЬ НЕ ОТЖИМАЯ ???
Название: onmousedown?
Отправлено: от 17 Декабря 2001, 22:54:21
Зачем придираться к словам :) -> :(
Смысл вопроса ведь ясен?! Если нет - посмотрите предыдущие сообщения. Если нужно я терпеливо постараюсь сформулировать вопрос иначе - понятнее, точнее, приведу примеры. Хотя всё это было уже сделано мной и другими участниками форума, проявившими интерес к проблеме. В любом случае, спасибо за внимание, Алексей.
Название: onmousedown?
Отправлено: Oak от 18 Декабря 2001, 03:29:14
То что я тебе написал расчитано на то, что ты хочешь учиться, а не просто тупо
получить результат.

Этот скрипт с исправленными опечатками.








height="17" name="upButton" onmousedown="doUp()"
onmouseup="if(tmID) {clearTimeout(tmID);tmID=null;}">


   


В Netscape4 - он работает так, как тебе надо
В IE - если слишком быстро кликаешь - то срабатывает через раз. Если кликаеш сравнительно медленно,
 то так,как ты хочешь.
  Как по мне - это глюк IE (мне лень копать глубже).

 Ато, что ты даже не удосужился посмотреть в какой строке выдается ошибка, говорит о том,
что в тебе нет любознательности - извини, больше я не буду тебе отвечать.
:(
Название: onmousedown?
Отправлено: от 18 Декабря 2001, 09:06:05
Цитировать
Ато, что ты даже не удосужился посмотреть в какой строке выдается ошибка, говорит о том,
что в тебе нет любознательности - извини, больше я не буду тебе отвечать.


Все опечатки в предыдущем варианте скрипта я исправил, поэтому никакой ошибки не выдавалось. Теперь пошел учиться на следующем...
Название: onmousedown?
Отправлено: от 18 Декабря 2001, 09:12:00
Цитировать
В Netscape4 - он работает так, как тебе надо

...испытывая его в Netscape