Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отслеживание нажатия мышки и клавиши 
:(
    Опции темы
chiffa
Дата 10.12.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



Добрый вечер. мне нужно отследить нажатие клавиши ctr+левая кнопка мышки. Искал в сети не нашел как перехватить клик мышой, понимаю что должно быть как то так:

Код

<body onkeydown="if(event.keyCode == 17 &amp;&amp; *****) alert('YES');">


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

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

Текст1
Текст2
Текст3

при нажатии на del "YES" должно выводится только тогда когда мышка будет над Текст2.


Это сообщение отредактировал(а) chiffa - 10.12.2009, 01:37
PM MAIL   Вверх
Amphiluke
Дата 10.12.2009, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Разбирайтесь.  smile 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ</title>
<script type="text/javascript">
var isMouseOverTxt2 = false;

function clickHandler(evnt) {
    var ev = (evnt) ? evnt : event;
    if (ev.button == 0 && ev.ctrlKey)
        alert("кликнули с зажатой клавишей Ctrl");
}

function keydownHandler(evnt) {
    var ev = (evnt) ? evnt : event;
    if (ev.keyCode == 46) {
        if (isMouseOverTxt2) {
            alert("нажали Del, когда курсор был над \"Текст2\"");
        }
    }
}

function moveroutHandler(evnt) {
    var ev = (evnt) ? evnt : event;
    isMouseOverTxt2 = (ev.type == "mouseover");
}

function __addEventHandler(obj, ev, handler) {
    if (obj.addEventListener) {
        obj.addEventListener(ev, handler, false);
    } else {
        obj.attachEvent("on" + ev, handler);
    }
}
function addEventHandlers(evnt) {
    __addEventHandler(document, "click", clickHandler);
    __addEventHandler(document, "keydown", keydownHandler);
    var txt2Obj = document.getElementById("txt2");
    if (txt2Obj != null) {
        __addEventHandler(txt2Obj, "mouseover", moveroutHandler);
        __addEventHandler(txt2Obj, "mouseout", moveroutHandler);
    }
}

__addEventHandler(window, "load", addEventHandlers);
</script>
</head>

<body>
    <p>Текст1</p>
    <p><span id="txt2">Текст2</span></p>
    <p>Текст3</p>
</body>
</html>


Добавлено через 3 минуты и 8 секунд
P.S. Если будут конкретные вопросы — задавайте.
PM   Вверх
chiffa
Дата 10.12.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



пасиба! то что нужно!  smile

буду разбиратся. а не подскажешь где про данную технологию можно почитать по подробнее?

Добавлено @ 11:50
Не работает если

 <p>Текст1</p>
    <p><span id="txt2">Текст2</span></p>
    <p>Текст3</p>

подгружается Аджаксом....

Это сообщение отредактировал(а) chiffa - 10.12.2009, 12:13
PM MAIL   Вверх
Amphiluke
Дата 10.12.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Практически абсолютно всё, что нужно, можно найти 
  •  здесь: MDC
  •  здесь: MSDN
  •  здесь: W3C

С AJAX не работает потому, что в данном сценарии обработчики событий типа mouseover/mouseout добавляются при загрузке документа. Можно попробовать вызвать функцию addEventHandlers в обработчике события OnReadyStateChange при readyState=4. 


P.S. Сижу без мыши, довольно неудобно отвечать по теме... :(
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.