Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同时运行Keyup和Keydown_Javascript_Jquery - Fatal编程技术网

Javascript 同时运行Keyup和Keydown

Javascript 同时运行Keyup和Keydown,javascript,jquery,Javascript,Jquery,我正在尝试运行split(),冻结()和冻结2()当我按下键x时。 当我第一次按X键时,split()和冻结()工作。但是当我再次尝试时,只有freeze()工作。有没有一种方法可以用一个键同时使用所有三个功能 您需要查看我的脚本才能理解: (function() { var speed = 25; function split() { $("body").trigger($.Event("keydown&q

我正在尝试运行
split()
冻结()
冻结2()当我按下键
x
时。 当我第一次按X键时,
split()
冻结()工作。但是当我再次尝试时,只有
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();
            }
        });

setTimeout()
调用没有执行任何操作。如果要延迟函数的执行,必须将它们作为第一个参数传递,将延迟作为第二个参数传递。例如:
setTimeout(冻结,速度)
是的,但当我这样做时,只有split();和冻结();worksPlus,第二次按X时它就不工作了