Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
1

Вызов функции при возникновении события

18.06.2015, 22:22. Просмотров 1198. Ответов 13
Метки нет (Все метки)

Здравствуйте! Я совсем новичок в JS, так что простите некоторую тупость. Мне нужно, чтобы в момент нажатия клавиши 'Enter', у меня произошел вызов функции. Что-то никак не могу разобраться, как мне это сделать. Я гуглил, и самым подходящим мне вариантом было:
Javascript
1
2
3
4
5
6
7
document.onkeydown=function keyDefiner(event) {
    var keycode;
    if(!event) var event = window.event;
    if (event.keyCode) keycode = event.keyCode; // IE
    else if(event.which) keycode = event.which; // all browsers
    return keycode;
}
Тут-то и начались проблемы, т.к. я не совсем понимаю, что значит 1 строчка, как вызвать функцию и какие аргументы ей передавать.
Очень жду ответов, заранее спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2015, 22:22
Ответы с готовыми решениями:

Вызов функции при клике
<script type='text/javascript' > function MyFunc(S){ alert(S); //показываю принятый...

Вызов функции при движении мыши
Здравствуйте! Скажите, какое событие отвечает за движение мыши в пределах нужного дива, например:...

Вызов функции при клике на кнопку
Здравствуйте. Проблема собственно вот в чем. Вешаю вызов функции на кнопку <input type="submit"...

Вызов функции при нажатии на кнопку
Ребят как вызвать функцию при нажатии на кнопку ? <html> <head> <meta...

Вызов функции при нажатии на кнопку
У меня есть кнопка Регистрация, и есть заданая функция в отдельном файле, который прикреплени к...

13
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2015, 22:29 2
ну я сделаю попроще
Javascript
1
2
3
4
5
6
document.onkeydown=function(e){
e=e||window.event // это для тупых, то есть для IE 
if (e.keyCode==13){
VASHA(/*аргументы*/)
}
}
Добавлено через 1 минуту
на 4 строчке делаете что душе угодно, так как эта штука будет работать только по нажатию энтера
первая строка назначает объекту document эвентлистнер(eventListner) keydown
0
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
18.06.2015, 22:29  [ТС] 3
Ок, спасибо, но как мне такое вызывать?
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2015, 22:32 4
она сама вызовится

но можно напрямую
типа document.onkeydown()
это прямо напрямую вызывает листнер, но он сработает не правильно, не будет выполнена 3 строка, тоесть саме главное, проверка: "энтер ли был нажат"

Добавлено через 1 минуту
Javascript
1
2
3
4
5
6
document.onkeydown=function(e){
e=e||window.event // это для тупых, то есть для IE 
if (e.keyCode==13){
alert("вы нажали клавишу Enter")
}
}
вот это будет выкидывать модалку только если был нажат энтер
0
18.06.2015, 22:32
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
18.06.2015, 22:33  [ТС] 5
Опять же, не догоняю. Мне надо, чтобы ожидание нажатия клавиши 'Enter' выполнялось только в нужный мне момент. Или так нельзя?
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2015, 22:39 6
короче вы этот скрипт вписываете на страницу, и если вы нажали Enter то будет выполнено то что находится в 4 строке

Добавлено через 19 секунд
в какой такой момент?

Добавлено через 2 минуты
в 3 строке можно просто добавить условие

Добавлено через 2 минуты
http://learn.javascript.ru/ifelse вот держите, посмотрите про условия
0
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
18.06.2015, 22:39  [ТС] 7
Короче, я пишу текстовую игру. в один момент я предлагаю взять игроку карту. Это осуществляется не через confirm , а именно текстом в абзаце. Игрок может отказаться, а может согласиться. В этот момент я должен отследить, что он нажал, Esc -отказ, или Enter - согласие. Так же, есть функция, которая предлагает новую игру. Там принцип тот же, но дальнейшем разветвление свое. В остальные моменты мне этого совсем не надо.
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2015, 22:42 8
Цитата Сообщение от BANO Посмотреть сообщение
в 3 строке можно просто добавить условие
Javascript
1
2
3
4
5
6
document.onkeydown=function(e){
e=e||window.event // это для тупых, то есть для IE 
if (e.keyCode==13 && TutVasheUslovie){
VASHA(/*аргументы*/)
}
}
0
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
18.06.2015, 22:49  [ТС] 9
Вот, чтобы не быть голословным, прикрепляю свой код и страницу, к которой он подключен.
0
Вложения
Тип файла: zip Archive.zip (2.3 Кб, 4 просмотров)
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2015, 23:04 10
не так как у вас не получится, это событие, он не может загнать результат в переменную, пока событие не произошло

Добавлено через 2 минуты
Javascript
1
2
3
4
5
6
7
8
document.onkeydown=function(e){
e=e||window.event // это для тупых, то есть для IE 
if (e.keyCode==13 && TutVasheUslovie){
                player.push(getCard());
                dealer.push(getCard());
}
if (e.keyCode==27) refresh()
}
Добавлено через 3 минуты
да у вас весь код как консольное приложение
может вы сделаете консольно приложение и не будете парится?
0
IvanBlacky
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 28
19.06.2015, 11:09  [ТС] 11
Спасибо, все понял! Скажите, а я могу сделать так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
function trick () {
document.onkeydown=function(e){
e=e||window.event // это для тупых, то есть для IE 
out(getStatus() + ' Хотите еще разок? (Да - Enter, Нет - Esc)');
if (e.keyCode==13 && offernewgame==true){
                player.push(getCard());
                dealer.push(getCard());
}
if (e.keyCode==27 && offernewcard==true) refresh()
}
}
А потом в нужный момент вызывать trick();?
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.06.2015, 11:17 12
по идее да
0
alexsamos33
620 / 600 / 325
Регистрация: 26.04.2014
Сообщений: 1,976
19.06.2015, 11:43 13
А вот так можно выключить событие, чтобы оно не срабатывало:
Javascript
1
document.onkeydown=0; // отключить событие когда оно не нужно
1
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.06.2015, 11:50 14
Лучший ответ Сообщение было отмечено IvanBlacky как решение

Решение

alexsamos33,
хоть это и тоже самое, но это как-то по канону
Javascript
1
document.onkeydown=null
1
19.06.2015, 11:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2015, 11:50

Вызов функции при наведение мыши на кнопку
function checklo(){ var pole = document.getElementById("text").value; if (pole == "")...

Вызов функции при клике на ячейку таблицы
Есть таблица. Требуется каждой ячейке (td) установить вызов одной функции, но с разными параметрами...

Вызов функции при изменении значения переменной
У меня есть переменная x , я хочу , чтобы при каждом её изменении вызывалась функция( какая -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru