javascript - 单击时出现 jQuery 错误 - > Uncaught TypeError: Cannot read property 'top' of undefined
问题描述
我不是 jQuery 专家,我想知道在单击简单表格中的 2 个图标时我是否做错了什么会在 jQuery 中产生错误。
在特定的此处,当我单击 pdf 图标或信封图标时,我在控制台中看到生成了错误(每次单击 2 个图标之一时,数字都会增加)。另外,我为图标设置的链接不再起作用。
如您所见,在右侧我有一个动画。这只是我停用的脚本代码,以查看是否是问题所在,但没有奏效。
不幸的是,我正在使用 CMS 插件,我无法更改它的代码。
这是错误
(index):62 Uncaught TypeError: Cannot read property 'top' of undefined
at HTMLTableElement.<anonymous> ((index):62)
at HTMLTableElement.dispatch (jquery-1.12.4.js:5226)
at HTMLTableElement.elemData.handle (jquery-1.12.4.js:4878)
这是代码
//your current click function
$('.scroll').on('click',function(e){
e.preventDefault();
$('html,body').animate({
scrollTop:$($(this).attr('href')).offset().top + 'px'
},1000,'swing');
});
解决方案
您可以尝试为这两个图标的链接添加一个类,例如我添加 class="clickable":
<a class="clickable" href="https://kirchmatt-breitenbach.ch/wp-content/uploads/2018/10/C16-0.2.pdf" target="_blank"><img src="https://kirchmatt-breitenbach.ch/wp-content/uploads/2018/10/pdf.png" height="20" width="auto"></a>
然后将其添加到您的 javascript:
$(".clickable, .clickable img").on('click', function(e){
e.stopPropagation();
}
这样当您单击这两个链接时,滚动 javascript 代码就不会运行。
推荐阅读
- flutter - 如何在颤动中使用谷歌地图为相机设置缩放动画
- python - 自己的数据集在训练时与 Sklearn SVM 一起使用,但在预测时不使用
- html - 在 onvisibilitychange 回调中调用 document.hasFocus() 时总是返回 false
- node.js - TypeError [ERR_INVALID_ARG_TYPE]:“list”参数必须是 Array 的实例。收到未定义
- python - 是否可以在烧瓶 Restful 端点上提供破折号应用程序?
- react-native - 世博会通知没有在屏幕上弹出
- mongodb - 尝试使用数据库和集合的 mongo 容器时出错
- java - Visualizer 被复制但不超过一次
- python - python list 和 python dataframe/series 中 sum() 函数的区别
- ssms - SSMS - 在“编辑”菜单中单击时不会弹出“在文件中查找”