gpt4 book ai didi

javascript - 在 anchor 单击时执行 javascript 函数,但代码必须在该 anchor 打开的页面上运行

转载 作者:行者123 更新时间:2023-12-03 12:39:01 25 4
gpt4 key购买 nike

这种行为可能吗?我需要点击事件处理程序中的代码,以便在该导航链接打开的新 HTML 页面上执行。

我放了一个小 fiddle 来更好地说明我想要实现的目标。 http://jsfiddle.net/hWEpL/4/

这是用于滚动的 jQuery:

        $.fn.scrollView = function () {
return this.each(function () {
$('html, body').animate({
scrollTop: $(this).offset().top
}, 1000);
});
}

$('#link-3').click(function (event) {
event.preventDefault();
$('.section-3').scrollView();
});

假设 fiddle 是主页。单击第 3 部分时,页面滚动到第 3 部分。

现在,假设我们位于第二页(关于),然后单击第 3 部分。我希望打开主页,并将页面滚动到第 3 部分。

问题是,我不希望在打开主页时出现这种行为,只有当有人在其他页面上并单击第 3 节时才需要它

最佳答案

您可以使用Fragment identifiers 。因此,例如在“关于”页面中,您将使用 homepage.htm#section-3 链接到主页,在 homepage.htm 中,您将像已包含的代码一样包含但添加

var hash=location.hash
if(hash){
var el=$('.'+hash.substr(1))
if(el)
el.scrollView();
}

在onLoad中。这里我们使用片段来告诉页面要转到哪个元素。

http://jsfiddle.net/hWEpL/5/这是更新后的 jsfiddle(已使用

跟踪模拟哈希位置

location.href="#section-3"//模拟命名链接。不要将其包含在您的代码中

继续前进,也许从语义上讲,您可以使用 ID 而不是类,以便在禁用 javascript 的情况下使用片段的默认行为,但是您必须放置这段代码来实际阻止默认行为(并允许动画发生)如 https://stackoverflow.com/a/3659116/1480215 中所述

setTimeout(function() {
if (location.hash) {
window.scrollTo(0, 0);
}
}, 1);

关于javascript - 在 anchor 单击时执行 javascript 函数,但代码必须在该 anchor 打开的页面上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com