|
|
|
| Доброй ночи,
начал разбирать нажатые клавиши в jquery, пишу код который бы выполнялся при нажатом Enter и Клике. Как мне объединить два этих события?
<script type="text/javascript">
$(document).ready(function(){
$("#text").bind('click, keydown' ,function(event) {
if (event.keyCode == 13) { // как бы еще добавить событие click ?
$.ajax({
type: "POST",
url: "add.php",
data: "id="+$('#text').attr('id'),
success: function(html){
$('#result').val(html);
}
});
return false;
}
});
});
</script>
|
| |
|
|
|
|
|
|
|
для: ZetRider
(13.03.2012 в 23:10)
| | у вас все правильно, только в bind(' click keydown'), насколько я знаю, без запятой перечисляются события
и event.keyCode не понадобится уже | |
|
|
|
|
|
|
|
для: Tonik992
(14.03.2012 в 02:29)
| | Если не использовать event.keyCode == 13
то будет реагировать на все клавиши.. а нужно только на Enter у которого код = 13
код кнопки взял отсюда http://www.aspdotnetfaq.com/Faq/What-is-the-list-of-KeyCodes-for-JavaScript-KeyDown-KeyPress-and-KeyUp-events.aspx | |
|
|
|
|
|
|
|
для: ZetRider
(13.03.2012 в 23:10)
| | 1. Никакие события объединить невозможно.
В принципе невозможно.
2. Объект event всегда существует в единственном экземпляре.
Нажали кнопку - произошло событие keydown и объект event своими свойствами описывает именно это событие "нажатия кнопки".
Можно узнать, например, код (event.keyCode) нажатой клавиши
3. ЗАТЕМ (ПОСЛЕ, ПОЗЖЕ, ПОТОМ...) происходит другое событие.
Например - клик левой кнопкой мыши.
Это событие (click) создаёт новый экземпляр объекта event, который напрочь забывает все свойства предыдущего события и приобретает свойства нового события.
Можно узнать, например, тег, по которому кликнули (event.target || event.srcElement)
4. На нормальном Javascript'e просто делается флаг (глобальная переменная), изначально равная false.
Нажали кнопку - обрабатывается отдельной функцией событие keydown, в которой проверяется код нажатой клавиши.
Если код равен коду нужной нам клавиши - значение флага меняется на true.
5. Отпустили кнопку - запускается следующая (вторая) функция, обрабатывающая событие keyup.
Если код кнопки тот же, то значение флага снова делаем false.
6. При событии клика запускается третья функция, в которой обрабатывается событие click и проверяется значение этого самого флага.
Если оно равно true - значит, что кнопка с нужным кодом нажата и ещё не отпущена.
Можно выполнять требуемые действия.
7. В общем - всё просто и примитивно.
8. Полагаю, что и на собачьем языке JQuery невозможно в одной функции обработать два события (а по сути - даже три, об отпускании кнопки читай выше).
Хотя... я этого собачьего языка не знаю, мей би там и "невозможное возможно":-)
PS. Лучше всего JQuery работает на ниве дебилизации своих юзеров. | |
|
|
|
|
|
|
|
для: ЯСА
(14.03.2012 в 09:18)
| | Понятно, спасибо за столь подробный ответ.
Пришлось продублировать код для разных событий | |
|
|
|