锚点上的Javascript点击事件无法正常工作

时间:2018-01-23 21:00:50

标签: javascript onclick keypress eventtrigger

我试图在锚点上的键盘上按空格键时调用click事件。

$("a").on("keypress", function (e) { 
    if (e.which === 32) {
        $(this).click();
        e.preventDefault();
    }
}

然而,这不起作用。我终于想出了一个修复,但我不明白为什么它的工作原理。简单的解决方法是将$(this).click()更改为$(this)[0].click()

[0]正在做什么以及如何使点击事件在锚上工作?

注意:我也试过$(this).trigger("click")也没有运气。

2 个答案:

答案 0 :(得分:2)

请参阅以下链接中的Roman Starkov的答案: Jquery how to trigger click event on href element

  

原生DOM方法做得对:

$('.cssbuttongo')[0].click();
                  ^
              Important!
     

无论href是URL,还是片段(例如,   #blah)甚至是javascript:。

     

请注意,这会调用DOM click方法而不是jQuery click   方法(非常不完整,完全忽略href)。

所以基本上当你使用索引器时,你将访问DOM的本机点击方法,而不是不适用于链接的jQuery实现。

我想将此主题标记为重复,但首先我链接了一个错误的主题,因此我收回了标记,现在我无法重新标记它。因此,如果有人有权力将其标记为链接主题的副本。如果这个答案有助于支持Roman Starkov在链接中的原始答案,那么他应该得到它。

答案 1 :(得分:0)

我没有确切地了解情况,但这对我有用,请试试这个:

py -3.5 -m pip

随意重新安排......希望它有所帮助!