Сообщение от Sigizmund2012
|
var value = (128 - 3 * e.type == 'keydown') + 'px';
|
Ну смотри, у нас навешано два события (keyup и keydown), они будут вызывать одну и ту же функцию.
Если событие keydown, то нам нужно подставить 125, а если keyup - то 128, верно?
Вот и подставляем значение:
e.type == 'keydown' -> тут у нас вернёт либо true, либо false, в зависимости от типа события.
3 * e.type == 'keydown' -> в данном случае, наше булево значение будет восприниматься как число, либо 3 * 1, либо 3 * 0, следовательно:
var value = (128 - 3 * e.type == 'keydown') + 'px' -> тут у нас получится либо 125px, либо 128px (всё зависит от типа произошедшего события).
Теперь про объект и ключи:
var ids = {69: 'exort', 81: 'quas', 82: 'invoke', 87: 'wex'}; -> это у нас объект с ключами, ключ должен возвращать e.keyCode.
Оператор in - это не обязательно for..in, этот оператор проверяет существования ключа у объекта/массива. К примеру:
var obj = {a: 'foo'};
alert('a' in obj) //true
alert('b' in obj) //false
Ну вот и всё, если e.keyCode есть в объекте, то подставляем значение объекта с ключём e.keyCode:
$('#' + ids[e.keyCode])
Надеюсь, что понятно объяснил.