Javascript JS事件CTRL+;鼠标悬停在+;隐藏文本

Javascript JS事件CTRL+;鼠标悬停在+;隐藏文本,javascript,jquery,html,Javascript,Jquery,Html,我必须做到这一点: 在div中隐藏文本 用户将按下Ctrl键,然后将鼠标放在按钮上-必须调用javascript函数,并且应该显示div中的文本 如果用户松开Ctrl键,文本应消失(即使鼠标在按钮上),同样,如果用户将鼠标从按钮上移出,文本应消失(即使按下Ctrl键) 我迄今为止的工作: <html> <head> <script type="text/javascript" src="jquery.js"></script> <script

我必须做到这一点:

  • 在div中隐藏文本
  • 用户将按下Ctrl键,然后将鼠标放在按钮上-必须调用javascript函数,并且应该显示div中的文本
  • 如果用户松开Ctrl键,文本应消失(即使鼠标在按钮上),同样,如果用户将鼠标从按钮上移出,文本应消失(即使按下Ctrl键)
  • 我迄今为止的工作:

    <html>
    <head>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
        loadHandler = function(){
            $("#selector").mouseover(function(e){
                if(e.ctrlKey) {
                    //what do I have to write here so that holding CTRL will be recognized ?
                }
            });
        }
    </script>
    </head>
    
    <body onload="loadHandler();">
    <button type="button" onmouseover="document.getElementById('center').style.visibility = 'visible'">CTRL+mouseover</button>
    <div id="center" onmouseout="this.style.visibility = 'hidden'">
            <h1>Text text text</h1>
    </div>
    </body>
    
    </html>
    
    
    loadHandler=函数(){
    $(“#选择器”).mouseover(函数(e){
    如果(e.ctrlKey){
    //我必须在这里写些什么才能识别按住CTRL键?
    }
    });
    }
    CTRL+mouseover
    文本文本文本
    

    我必须承认,我刚刚开始学习JS,所以请帮助我:)

    • 如何使按住CTRL键和鼠标同时被识别

    完美工作版本

    $(document).ready(function(){
        var keyPressed = false;
        var mouseovered = false;
        $("#center").mouseover(function(e){
          doStuff();
             mouseovered = true;
        });
        $("#center").mouseout(function(){
            doStuff();
            mouseovered = false; 
        });
        $(document).keydown(function(e){
             doStuff();
             if (e.ctrlKey) 
             {
                 keyPressed = true;
             }
            else keyPressed = false;
        });
    
        $(document).keyup(function(e){
    
             if (keyPressed) 
             {
                 keyPressed = false;
             }
            doStuff();
        });
    
        function doStuff()
        {
            if(mouseovered && keyPressed) $("#center").css({"color": "#000"});
        else  $("#center").css({"color": "#fff"});
        }
    });
    
    我只是没有在默认情况下隐藏文本。否则你很难找到它现在的位置。在检查之前,不要忘了点击
    正文
    。否则将无法检测到按键

    工作

    工作样本

    MouseEvent.shiftKey,MouseEvent.ctrlKey

    
    功能按键测试(事件){
    //错误,没有新闻,
    //是的,按
    console.log(event.ctrlKey)
    console.log(event.shiftKey)
    if(event.ctrlKey){
    //隐藏文本
    }
    }
    
    Thank you@void,但我需要在按住CTRL键和鼠标悬停按钮时触发此事件。你可以隐藏它,因为这是主要的想法:当按住CTRL+鼠标在按钮上方时,文本显示。当从按钮中释放CTRL或鼠标时->文本消失。不完全消失。如果不按CTRL键,文本将消失。我不这么认为。再检查一遍,我使用的是给定的JSFIDLE和文本dissapear,即使没有按CTRL键。这也发生在我的本地主机上。我希望我不是太烦人。整个代码的思想是按住CTRL+mouseover键会显示隐藏的文本我将在stackoverflow上创建一个新线程,以避免扩展讨论,并添加两个解决方案。第二个仍然不起作用。
       <img onmouseover="keypress_test(event)" onmouseout="keypress_test(event)">
    
    
        function keypress_test(event) {
    
                 // false, no press, 
                 // true, pressed
    
                  console.log(event.ctrlKey)
    
                  console.log(event.shiftKey)
    
    
                 if (event.ctrlKey) {
    
                        // hide text
                    }
           }