为什么onclick事件在触摸屏上不起作用,而在桌面上起作用?

时间:2019-03-20 19:30:41

标签: javascript html

我检查了很多帖子,但看起来却各不相同,没有一种解决方案适合我。以下是一个非常简单的示例,img1_click在最新的Chrome浏览器中工作,只需在桌面上单击鼠标即可,但在触摸屏上{ 1}}从未被调用,我可以看到:

  

未定义的参考错误img1_click未定义

我发现了this条帖子,提示:

img1_click

但是,它仍然无法正常工作!

我在JavaScript文件中定义函数document.getElementById ('img1').addEventListener ("click", img1_click, false); ,并将其加载到此img1_click文件中:

.html

有一个指向https://tommcfarlin.com/javascript-reference-error-is-not-defined/的链接来讨论此问题,这意味着HTML有时无法识别或定义JavaScript中的函数。

2 个答案:

答案 0 :(得分:0)

您是否100%确定定义了img_click1()函数?在Chrome开发人员工具(Ctrl + Shift + i,F12或菜单->更多工具-> Chrome开发人员工具)中,进入控制台并运行img_click1();测试它是否确实存在。如果您遇到未定义的问题,那么我们将需要更多代码(整个HTML +整个JS文件),以验证您的代码是否正常工作。

答案 1 :(得分:0)

在我看来,问题可能是由于函数在另一个文件中,有时也有类似的问题。关键是,当该javascript文件仍在加载时,浏览器会到达您尝试将功能分配给onclick事件的代码部分。尝试将其包装在window.onload函数中,以等待代码完成所有资源的加载。

window.onload = function() {
     document.getElementById ('img1').addEventListener ("click", img1_click, false);
}