Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2011, 20:48
Интересующийся
Отправить личное сообщение для Smoker Посмотреть профиль Найти все сообщения от Smoker
 
Регистрация: 11.08.2011
Сообщений: 17

ESC button keydown
$(document).keydown(function(e) {
    if( e.keyCode === 27 ) {
        $('#button').click();
        return false;
    }
});

Я хочу сделать алиас клику по кнопке в виде нажатия на клавишу escape, есть 2 вопроса:

1. Если я что-то пишу в текстовом поле, затем нажимаю escape, то "нажатие" кнопки действительно происходит, повторное нажатие на escape к повторному "нажатию" уже не приводит: как будто теряется "фокус" на document, т.к. если кликнуть левой кнопкой мыши по странице, затем опять нажать escape, то всё OK. What the fuck?
2. Нажатие кнопки приводит к AJAX-запросу, который почему-то не происходит (в firebug запрос подсвечен красным, запрос якобы посылается, но ответ никакой не приходит, рядом с запросом красный крестик), если в данном коде опустить "return false". Почему?
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2011, 00:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Smoker Посмотреть сообщение
1. Если я что-то пишу в текстовом поле, затем нажимаю escape, то "нажатие" кнопки действительно происходит, повторное нажатие на escape к повторному "нажатию" уже не приводит: как будто теряется "фокус" на document, т.к. если кликнуть левой кнопкой мыши по странице, затем опять нажать escape, то всё OK. What the fuck?
документ теряет фокус. все хорошо. не стоит возвращать false из обработчика события, назначенного jquery - плюются часто

отменить действие по умолчанию можно ещё так
e.preventDefault();


Сообщение от Smoker Посмотреть сообщение
2. Нажатие кнопки приводит к AJAX-запросу, который почему-то не происходит (в firebug запрос подсвечен красным, запрос якобы посылается, но ответ никакой не приходит, рядом с запросом красный крестик), если в данном коде опустить "return false". Почему?
может стоит посмотреть в консоль и посмотреть, что происходит? Плагин называется Firebug, вызывается по F12 или в менюшке.
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2011, 09:49
Интересующийся
Отправить личное сообщение для Smoker Посмотреть профиль Найти все сообщения от Smoker
 
Регистрация: 11.08.2011
Сообщений: 17

Сообщение от melky Посмотреть сообщение
может стоит посмотреть в консоль и посмотреть, что происходит? Плагин называется Firebug, вызывается по F12 или в менюшке.
Вроде бы из моих пояснений ясно, что я именно это и делаю.
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2011, 09:53
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

"подсвечивается красным" - это неинформативно
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2011, 15:15
Интересующийся
Отправить личное сообщение для Smoker Посмотреть профиль Найти все сообщения от Smoker
 
Регистрация: 11.08.2011
Сообщений: 17

melky, серьёзно? Я тоже так думаю.

Вот полный код:
<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(document).keydown(function(e) {
        if( e.keyCode === 27 ) {
            alert('Pressed escape');
            $.post('/', function() { alert('OK'); });
            return false;
        }
    });
    </script>
</head>
<body>
</body>
</html>

Результат при нажатии escape: сначала окно с "Pressed escape", успешный запрос и затем окно с "OK":
ajax-post-false.png

Если просто закомментировать "return false;", то при нажатии escape вылезет "Pressed escape" и неуспешный запрос:
Вложение 904

В чём ошибка?

P.S. Второй файл почему-то при заливке JPEG'ом стал.

Последний раз редактировалось Smoker, 27.08.2011 в 15:19.
Ответить с цитированием
  #6 (permalink)  
Старый 16.01.2020, 15:47
Новичок на форуме
Отправить личное сообщение для sasha_zuev Посмотреть профиль Найти все сообщения от sasha_zuev
 
Регистрация: 16.01.2020
Сообщений: 1

Кто-то понял в чём проблема?!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема radio button с кроссбраузерностью shkarbatov Javascript под браузер 0 28.07.2011 10:55
Как стереть содержимое поля INPUT по клавише Esc? bug FireFox? Маэстро Firefox/Mozilla 4 20.06.2011 15:55
Почему в Opera исчезает курсор при нажатии клавиши Esc ? Маэстро Opera, Safari и др. 3 23.11.2010 16:31
Вызов функции PHP по нажатии на Button vah-smile Элементы интерфейса 8 14.07.2010 11:32
Global, Button. Необходима Помощь. Nazv Общие вопросы Javascript 1 12.12.2008 17:45