Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Events_Dom - Fatal编程技术网

JavaScript单击事件通过Enter键触发,但不是通过鼠标触发

JavaScript单击事件通过Enter键触发,但不是通过鼠标触发,javascript,events,dom,Javascript,Events,Dom,某些代码看起来像是通过Enter键触发单击事件,但对鼠标单击没有响应 //a is an anchor element a.addEventListener('click', function (e) { //Do Stuff... }); 说明了问题所在。代码的相关位位于第176行。这是在发展的中期,目前只有(类)在 Chrop 中工作。 另外,我刚刚验证了如果我使用mousedown,它是有效的,所以这不仅仅是一个不可见的元素位于锚点前面的情况 有什么想法吗?编辑:现在您已经向我们

某些代码看起来像是通过Enter键触发
单击
事件,但对鼠标单击没有响应

//a is an anchor element
a.addEventListener('click', function (e)
{
    //Do Stuff...
});
说明了问题所在。代码的相关位位于第176行。这是在发展的中期,目前只有(类)在<强> Chrop

中工作。 另外,我刚刚验证了如果我使用
mousedown
,它是有效的,所以这不仅仅是一个不可见的元素位于锚点前面的情况


有什么想法吗?

编辑:现在您已经向我们展示了您正在使用的实际代码,问题在于
autoSuggest()
函数有自己的单击处理程序,在该单击处理程序中,它正在清除容器,从而删除容器中的所有
元素,从而销毁链接对象(可能在单击事件开始处理之前)。因此,您可以获取单击之前发生的事件(如mousedown),但单击之后,元素将从DOM中删除

如果您告诉我们,当单击自动建议项时,您的实际操作与
autoSuggest()
函数的默认行为不同,并且您指向该函数的任何文档,那么也许我们可以提供更好的方法来解决您的问题


该链接可能会触发并将您转到新页面(或重新加载当前页面),从而阻止您看到单击代码的运行。通常,当您处理链接元素上的单击事件时,需要阻止默认行为:

//a is an anchor element
a.addEventListener('click', function (e) {
    e.preventDefault();
    //Do Stuff...
});

另一种可能是,您试图在加载DOM之前或在创建此特定链接之前过早安装事件处理程序,因此没有实际的单击事件处理程序附加到DOM对象。您可以通过临时放置
警报来验证是否调用了事件处理程序(“单击已调用的处理程序”)
在事件处理程序中,查看是否弹出该对话框。

这个问题没有告诉我们有关您的代码的任何信息。您能在失败的地方发布一个演示吗?更多的代码会有所帮助。但可能有一个不可见的元素阻止了锚定标记的实际点击?@elclanrs et.al.-demo posted.谢谢。我已经在调用
e.preventDefault()
。我刚刚编辑了我的问题,添加了一个指向演示问题的页面的链接。@RodrickChapman-看看我在回答的开头添加了什么。非常感谢。我实际上编写了
自动建议
函数,我可以发誓以前也曾以类似的方式使用过它。