Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 如何确定在单击之前按下ctrl键?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何确定在单击之前按下ctrl键?

Javascript 如何确定在单击之前按下ctrl键?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有下面的脚本,它为用户提供了特定元素的URL(当前URL加上作为锚元素的#id)。我的脚本在用户单击元素时执行,好的,这不是我想要的,我想要这个: 如果按下ctrl键,用户单击元素,则运行下面的脚本。然后将该URL复制到用户系统的剪贴板中。 我该怎么做 //我需要在这里写一个条件来检查是否按下了ctrl键? $(“div”)。在(“单击”,函数()上{ var url=window.location.href; var anchor=$(this.attr(“id”); var url_of

我有下面的脚本,它为用户提供了特定元素的URL(当前URL加上作为锚元素的#id)。我的脚本在用户单击元素时执行,好的,这不是我想要的,我想要这个:

如果按下ctrl键,用户单击元素,则运行下面的脚本。然后将该URL复制到用户系统的剪贴板中。

我该怎么做

//我需要在这里写一个条件来检查是否按下了ctrl键?
$(“div”)。在(“单击”,函数()上{
var url=window.location.href;
var anchor=$(this.attr(“id”);
var url_of_elm=url+“#”+锚;
console.log(url\u of_elm);
//我需要在用户的剪贴板中复制url_of_elm
警报(“复制了元素的URL”);
});
div{
边框:1px纯色灰色;
保证金:5px;
填充物:5px;
}

标题1
内容1

别的 标题2 content2其余的content2

别的 标题3 content3是content3中的链接

别的
更改

$("div").on("click", function(){

然后进行内部检查

if(event.ctrlKey){
    \\Ctrl key is pressed!
编辑:

更改

$("div").on("click", function(){

然后进行内部检查

if(event.ctrlKey){
    \\Ctrl key is pressed!

编辑:

您可以通过将keydown和keyup事件侦听器连接到文档来实现这一点,该文档设置一个标志,指示是否按下了CTRL键。然后可以在单击处理程序中检查此标志。试试这个:

ctrlKeyDown=false;
$(文档).on({
向下键:功能(e){
ctrlKeyDown=e.ctrlKey;
},
keyup:function(){
ctrlKeyDown=false;
}
});
$(“div”)。在(“单击”,函数()上{
如果(ctrlKeyDown){
var url=window.location.href;
var anchor=$(this.attr(“id”);
var url_of_elm=url+“#”+锚;
警报(url\u的\u elm);
}
});
div{
边框:1px纯色灰色;
保证金:5px;
填充物:5px;
}

标题1
内容1

别的 标题2 content2其余的content2

别的 标题3 content3是content3中的链接

别的
您可以通过将keydown和keyup事件侦听器连接到文档来实现这一点,该文档设置了一个标志,指示是否按下了CTRL键。然后可以在单击处理程序中检查此标志。试试这个:

ctrlKeyDown=false;
$(文档).on({
向下键:功能(e){
ctrlKeyDown=e.ctrlKey;
},
keyup:function(){
ctrlKeyDown=false;
}
});
$(“div”)。在(“单击”,函数()上{
如果(ctrlKeyDown){
var url=window.location.href;
var anchor=$(this.attr(“id”);
var url_of_elm=url+“#”+锚;
警报(url\u的\u elm);
}
});
div{
边框:1px纯色灰色;
保证金:5px;
填充物:5px;
}

标题1
内容1

别的 标题2 content2其余的content2

别的 标题3 content3是content3中的链接

别的

@Rorymcrossan事实上是这样的。另外,我需要在用户系统的clildhood中复制该URL,这可能吗?@stack您必须复制的链接在哪里?您可以通过jQuery实现。查找([childrenWithLinkInsideIt]然后读取url。我需要在用户系统的子板中复制
url\u of_elm
变量的内容。您使用“用户系统的子板”到底是什么意思@RoryMcCrossan实际上是这样的。另外,我需要在用户系统的clildhood中复制该URL,这可能吗?@stack您必须复制的链接在哪里?您可以使用jQuery.find([childrenWithLinkInsideIt]然后读取url。我需要在用户系统的子板中复制
url\u of_elm
变量的内容。您对“用户系统的子板”的确切含义是什么谢谢。它可以工作,+1。请您在用户系统的童年复制该URL好吗?@LucaDeNardi使其在浏览器间工作。@Rorymcrossan什么浏览器在点击事件中没有这些标志?我相信IE的旧版本,也可能在OSX上。我现在没有一个可以测试。我同意您的版本是by是最优雅的,但如果您需要旧版浏览器支持,则需要上面的版本。在剪贴板中复制
url\u of_elm
变量的内容是不可能的?谢谢。它可以工作,+1。请您在用户系统的童年复制该url?@LucaDeNardi以使其跨浏览器工作。@rorymcross什么浏览器在点击事件中没有这些标志?我相信IE的旧版本,可能在OSX上也有。我现在没有一个可以测试。我同意你的版本是迄今为止最优雅的,但是如果你需要旧浏览器支持,就需要上面的版本。在剪贴板不可能吗?