Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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 鼠标悬停和多个函数中的变量时按下_Javascript_Jquery_Variables_Mouseover_Keydown - Fatal编程技术网

Javascript 鼠标悬停和多个函数中的变量时按下

Javascript 鼠标悬停和多个函数中的变量时按下,javascript,jquery,variables,mouseover,keydown,Javascript,Jquery,Variables,Mouseover,Keydown,在按住“A”键的同时移动光标时,我希望设置一个变量标志 $(document).on("mousemove", function () { $(document).keydown(function(e) { if(e.which == 65){ var $mLeft = '3px', $mTop = event.pageY - $sidebarRightDisp; } else {

在按住“A”键的同时移动光标时,我希望设置一个变量标志

$(document).on("mousemove", function () {
    $(document).keydown(function(e) {
        if(e.which == 65){
            var $mLeft = '3px',
                $mTop = event.pageY - $sidebarRightDisp;
        } else {
            var $mLeft = event.pageX - $sidebarLeftDisp,
            $mTop = event.pageY - $sidebarRightDisp;
        }
    });
    var $boxStyleAct = 'left:' + $mLeft + 'px;top:' + $mTop + 'px' + ';';
    var $boxAct = '<li style="' + $boxStyleAct + '"></li>';

    $(".boxes").append($boxAct);
});
$(document).on(“mousemove”,函数(){
$(文档).keydown(函数(e){
如果(e.which==65){
var$mLeft='3px',
$mTop=event.pageY-$sidebarRightDisp;
}否则{
var$mLeft=event.pageX-$sidebarLeftDisp,
$mTop=event.pageY-$sidebarRightDisp;
}
});
var$boxStyleAct='左:'+$mLeft+'px;顶:'+$mTop+'px'+';';
var$boxAct='
  • ; $(“.box”).append($boxAct); });
    顺便说一下,我真的不能在keydown函数中使用x“//做一些事情


    非常感谢。

    您的
    x
    变量是在if语句的范围内定义的。你可以把它搬出去。您还在mousemove上添加了一个事件侦听器,这不太好

    你可以这样做

    var aPressed=false;
    var键按下=假;
    var sidebarRightDisp=5;
    var sidebarLeftDisp=5;
    $(文档).mousemove(函数(事件){
    如果(!按键)
    返回;
    var-mLeft,mTop;
    如果(已发布){
    mLeft='3px';
    mTop=event.pageY-sidebarRightDisp;
    }否则{
    mLeft=event.pageX-sidebarLeftDisp;
    mTop=event.pageY-sidebarRightDisp;
    }
    var-boxStyleAct='左:'+mLeft+'px;顶:'+mTop+'px'+';';
    var-boxAct='
  • ; $(“.box”).append(boxAct); }).keydown(功能(e){ 按键=真; A压力=e,其中=65; }).keyup(功能(e){ 按键=假; aPressed=false; });
    
    
    试试这个

    var-AkeyPressed=false;
    var status=document.getElementById('status');
    $(document).on('mousemove',function(){
    if(AkeyPressed==true){
    log(“按键时鼠标移动”);
    }
    否则{
    console.log(“未按下的键”);
    }
    });
    $(文档).keydown(函数(e){
    如果(e.which==65){
    AkeyPressed=true;
    //var x=真;
    }
    否则{
    AkeyPressed=false;
    //var x=假;
    }
    });
    $(文档).keyup(函数(e){
    AkeyPressed=false;
    });
    window.focus()
    
    我只是更改代码,为您展示我想要的更好的示例。我不确定你的解决方案是否有效如果没有看到完整的HTML/CSS,很难说出你需要做什么。更新后的版本是否符合您的要求?我只有一个
    ,我不想在它的内部添加
    !但是我改变了
    (!keypressed)
    部分。我将其更改为
    if(按键){var mLeft,mTop;if(aPressed){mLeft='3px';mTop=event.pageY-sidebarRightDisp;}else{mLeft=event.pageX-sidebarLeftDisp;mTop=event.pageY-sidebarRightDisp;}else{mLeft=event.pageX-sidebarLeftDisp;mTop=event.pageY-sidebarRightDisp;}
    太好了!听起来你不需要keyPressed变量。你可以去掉它和else部分,结果应该是一样的。