#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь запустить split();
, freeze();
и freeze2();
когда я нажимаю клавишу x
. Когда я впервые нажимаю клавишу X, split();
и freeze();
работает. Но затем, когда я повторяю попытку, freeze();
работает только. Есть ли способ одновременной работы со всеми тремя функциями с помощью одной клавиши?
Вам нужно будет увидеть мой скрипт, чтобы понять:
(function() {
var speed = 25;
function split() {
$("body").trigger($.Event("keydown", {
keyCode: 32
}));
}
function split2() {
$("body").trigger($.Event("keyup", {
keyCode: 32
}));
}
function freeze() {
$("body").trigger($.Event("keyup", {
keyCode: 70
}));
}
function freeze2() {
$("body").trigger($.Event("keydown", {
keyCode: 70
}));
}
var addEvent = document.addEventListener ? function(target, type, action) {
if(target) {
target.addEventListener(type, action, false);
}
} : function(target, type, action) {
if(target) {
target.attachEvent('on' type, action, false);
}
}
addEvent(document, 'keydown', function(e) {
e = e || window.event;
var key = e.which || e.keyCode;
if(key === 88) {
split();
setTimeout(speed);
freeze();
setTimeout(speed * 2);
freeze2();
}
});
Комментарии:
1.
setTimeout()
Вызовы ничего не делают. Если вы хотите отложить выполнение функций, вы должны передать их в качестве первого параметра, а delay — в качестве второго. Пример:setTimeout(freeze, speed)
2. Да, но когда я это делаю, работают только split(); и freeze();
3. Кроме того, он не работает во второй раз, когда я нажимаю X