Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 在enter键上单击“定位标记链接”_Javascript_Jquery_Google Chrome - Fatal编程技术网

Javascript 在enter键上单击“定位标记链接”

Javascript 在enter键上单击“定位标记链接”,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我有一个锚标签,比如 <a class="btn btn-danger" id="clicking" data-bind="click: $root.enterLocation" href="#">Continue</a> 不确定为什么该功能不起作用。我使用了点击功能,同样的结果。它在鼠标点击时工作正常。我需要让它在回车时自动工作 以下代码在Firefox中运行良好 $(document).ready(function () { $(document).on("ke

我有一个锚标签,比如

<a class="btn btn-danger" id="clicking" data-bind="click: $root.enterLocation" href="#">Continue</a>
不确定为什么该功能不起作用。我使用了点击功能,同样的结果。它在鼠标点击时工作正常。我需要让它在回车时自动工作

以下代码在Firefox中运行良好

$(document).ready(function () {
  $(document).on("keyup", function (event) {
    if (event.which == 13) {
      document.getElementById("clicking").click();   
    }
  });
}); 

如何在Chrome上工作?

我创建了这个JSFIDLE: 它工作得很好,我只为InternetExplorer添加了一个备用项

你的弹出窗口是什么样子的?也许这是一个iFrame,这将是一个合乎逻辑的解释

代码:


$(文档).ready(函数(){
$(文档).keyup(函数(e){
如果(e.keyCode==13){
$(“#点击”).trigger('click');
}
})
});​

更好的选择是使用e.which

我认为问题在于您使用的是
event.keyCode
,它并非总是在所有浏览器中使用。一些浏览器使用
event.charCode
,甚至使用不同的
事件。这可能是您所使用的内容所支持的。无论如何,使用jQuery从事件中获取keycode的正常方法是使用
event.which

jQuery规范化传递给事件处理程序的
事件
对象,并修复类似这样的“问题”,这样您就不必担心了。同时,它似乎复制了原始事件的一些属性(“原始事件中的大多数属性被复制并规范化为新的事件对象。”——来自jQuery API文档)。这可能就是为什么它对其他人的评论/回答“有效”。传递给处理程序的
事件
参数已由jQuery生成/规范化,并将使用正确的属性包含您需要的所有内容。但正确的方法是使用
event.which
获取事件的规范化键码


我希望下面的代码可以帮助你。试试看 代码:


$(函数(){
$('body').keyup(函数(e){
如果(e.keyCode==13){
$(“#单击”)。单击();
}
})
});

您不应该使用
事件。哪个
,而不是
keyCode
?对我来说很好:只是澄清一下,当您正常地用鼠标单击链接时,链接会工作,但当您按enter键时不会工作?您确定按enter键时页面具有焦点吗?@Juhana您可能使用的浏览器使用的是
keyCode
,所以这很好,但是
charCode
呢?省去使用其中一个的麻烦,只需使用jQuery添加的规范化属性
事件即可。该属性为事件提供了一个通用的、正确的键代码。@juhana我在dat弹出窗口上有一个文本字段,需要快速聚焦。按enter键时,我需要单击该链接…这不是“Internet Explorer的回退”。没有理由对任何浏览器使用任何回退,因为jQuery会自动处理这个问题。这无论如何都不会有帮助,因为问题可能是缺少
event.charCode
,这也是不必要的,因为jQuery将两者都规范化为
event.which
。这两个属性是
keyCode
charCode
,因此我打赌OP使用的浏览器使用
charCode
,但需要
keyCode
。无论哪种方式,您都应该使用
event.which
我不知道jQuery会自动执行此操作。此外,没有支持charCode但不支持keyCode的浏览器。Internet Explorer 7和8使用window.event.keyCode。Internet Explorer 9使用e.keyCode,Firefox/Chrome也使用e.keyCode。我不知道你的意思。无论如何,
charCode
仅由NS/Firefox使用,可能需要也可能不需要填写,因此您需要检查它。不管怎样,你都不需要做任何这样的检查,因为jQueryNevermind英语不是我的主要语言,我不太明白你想说什么。现在我知道了。@Sanjib Karmakar:event.keyCode也在Chrome中工作,请参见:
$(document).ready(function () {
  $(document).on("keyup", function (event) {
    if (event.which == 13) {
      document.getElementById("clicking").click();   
    }
  });
}); 
<a class="btn btn-danger" id="clicking" data-bind="click: $root.enterLocation" onclick="alert('test')" href="#">Continue</a>

$(document).ready(function(){ 
    $(document).keyup(function(e){
        if (e.keyCode == 13){
        $("#clicking").trigger('click');       

        }
    })
});​
$(document).ready(function () {
    $(document).on("keyup", function (event) {
        if (event.which == 13) {
            $("#clicking").trigger('click');
        }
    });
});
<a class="btn btn-danger" id="clicking" onclick="window.location='index.php'" href="#">Continue</a>

$(function(){
  $('body').keyup(function(e){
    if (e.keyCode == 13){  
      $("#clicking").click();
    }
  })
});