Javascript 单击时获取jQuery错误->;未捕获类型错误:无法读取属性';顶部';未定义的

Javascript 单击时获取jQuery错误->;未捕获类型错误:无法读取属性';顶部';未定义的,javascript,jquery,Javascript,Jquery,我不是jQuery专家,我想知道当我在一个简单的表中单击两个图标时,我是否做了一些错误的事情,在jQuery中产生了错误 在特定的示例中,当我单击pdf图标或信封图标时,我在控制台中看到生成了一个错误(每次单击其中一个图标时,该数字都会增加)。另外,我为图标设置的链接不再工作 在右边你可以看到我有一个动画。这只是我停用的脚本代码,以查看是否存在问题,但它不起作用 不幸的是,我使用的CMS插件,我不能改变它的代码 这就是错误所在 (index):62 Uncaught TypeError: Can

我不是jQuery专家,我想知道当我在一个简单的表中单击两个图标时,我是否做了一些错误的事情,在jQuery中产生了错误

在特定的示例中,当我单击pdf图标或信封图标时,我在控制台中看到生成了一个错误(每次单击其中一个图标时,该数字都会增加)。另外,我为图标设置的链接不再工作

在右边你可以看到我有一个动画。这只是我停用的脚本代码,以查看是否存在问题,但它不起作用

不幸的是,我使用的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)

您可以尝试为这两个图标的链接添加一个类,例如I add class=“clickable”:


因此,当您单击这两个链接时,滚动javascript代码不会运行。

也许可以更改脚本:

//您当前的单击功能
$('.scroll')。在('click',函数(e)上{
e、 预防默认值();
var href=$(this.attr('href'),$ele=$(href);
如果($ele&&$ele.offset()){
var top=$ele.offset().top+'px'
$('html,body')。设置动画({
滚动顶端:顶端
},1000,'swing');
}   
});

这是因为选择器返回的是一个属性“string”,而不是一个元素。你的意思是这样的<代码>jQuery(document).ready(函数($){$(“.clickable,.clickable img”).on('click',函数(e){e.stopPropagation();});})
//your current click function
$('.scroll').on('click',function(e){
    e.preventDefault();
    $('html,body').animate({
        scrollTop:$($(this).attr('href')).offset().top + 'px'
    },1000,'swing');
});
<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>
$(".clickable, .clickable img").on('click', function(e){
   e.stopPropagation();
}