Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   [JS] - нажатие клавиш+2вопроса (https://javascript.ru/forum/events/48214-%5Bjs%5D-nazhatie-klavish-2voprosa.html)

accept 25.06.2014 00:49

[JS] - нажатие клавиш+2вопроса
 
1)
$(document).ready(function() {

$('body').click(function(e) {

e = e || event;

if (!e.ctrlKey || !e.shiftKey) return;

alert('OK');

});

});

что означает 3 строка? ? e = e или событие? как это понять?
-----
2)
ставлю обработчик на кнопку инпут, например:

document.getElementById("but").onclick = function() {

alert("OK");
}

<input type='submit' id="but">

пишет с консоли, что невозможно присвоить клик нуллу (Cannot set property 'onclick' of null)
;

В jQuery можно, знаю, просто хотелось узнать как работает в js

3)
как отловить определенную клавишу, чтоб не нажималась?



--

Спасибо заранее!

P.S. прошу прощения, за столько вопросов :)

BETEPAH 25.06.2014 11:03

1) это для кроссбраузерности. Означает, если браузер не видит в обработчике e, нужно брать event
2) обработчик нужно навешивать ПОСЛЕ того, как элемент добавлен на страницу
3) Клавиша на клавиатуре? Например, скотчем заклеить. Как это "чтоб не нажималась"? Чтоб не обрабатывалась? Проверяйте в событии keydown?
<!DOCTYPE html>
<html>
<head>
<script>
function showKeyCode(e) {
if (e.keyCode == 13) {
alert('нажат энтер');
return false;
} else alert( "keyCode: " + e.keyCode + "\n" );

}
</script>
</head>
<body onkeydown="showKeyCode(event);">
<p>Кликните сюда и затем нажмите клавишу</p>
</body>
</html>


Часовой пояс GMT +3, время: 02:45.