首页 > 解决方案 > 在同一页面内跳转时如何触发 JS 函数?

问题描述

当遵循锚点 href 时,我希望让我的页面突出显示目标位置。

目前它在转到另一个页面时工作正常,但是当我尝试链接到同一页面时,我无法触发该功能。在新页面上,它用于$(document).ready调用该函数,但我不知道当它在同一页面上移动时如何触发它。

我曾尝试使用 onClick,但这会导致最大堆栈问题,我希望有更好的方法来做到这一点。

有没有办法用 JQuery 或 Javascript 触发点击?

编辑:

我的代码是onclick="highlightTarget()"

这叫

function highlightTarget () {
            //Get location
            var url = window.location.href;
            if(url.indexOf("#") != -1) {
                var anchor = url.substring(url.indexOf("#")+1);
                //Get element
                var element = document.getElementById(anchor);

                //Highlight if not null
                if(element != null)
                    highlightTarget(element)
            }
}

我得到的错误是因为这个函数会不断被调用并且会填满堆栈。

但我想避免使用 onClick,因为我更喜欢使用一个函数,这样我就不必每次制作锚点时都添加 onClick。

编辑2:

我找到.addEventListener("click", function() {了,这似乎就是我想要的。然后我只是为每个锚添加了一个类作为标识符,并找到了一个包含该类的元素数组。

我会删除这个问题,但我希望如果他们能以某种方式找到它,它可以帮助处于相同情况的人。现有的答案对我不起作用。

标签: javascriptanchor-scroll

解决方案


推荐阅读