许多其他线程和外部论坛建议,我已经尝试在每个可以想象的地方放置e.preventDefault()(同时将e作为参数传递,而不是在代码示例中),但它不会'防止锚点重新加载页面。当我通过调试器时,它会为每个div指定scrollNav的click事件,但是当我点击div链接时,它只是重新加载页面,调试器不会停止在highlightSelection函数的任何行上。我尝试的另一种方法是在this.click中使用匿名函数,并将e.preventDefault()作为第一行,但它什么都不做。jQuery点击定位标记重新加载页面
我也不明白你为什么要把e.preventDefault()这么多其他人所建议的地方。这不是基本上说回报是假的吗?这可能会阻止重新加载页面的链接,但不会阻止该方法中的代码执行吗?
jQuery(document).ready(function() {
jQuery('.scrollNav').each(initSideNavForSelection);
}); // end ready
function initSideNavForSelection() {
this.click(highlightSelection);
}
function highlightSelection() {
var selectedDataID = this.attr("data-id");
jQuery('.scrollNav').each(function() {
if (this.attr("data-id") === selectedDataID) {
this.addClass("selected");
} else {
this.removeClass("selected");
}
})
}
如果可能,请尝试使用问题中的堆栈片段或jsfiddle重现您的问题。 –
刚刚尝试过JSFiddle。同样的事情也发生在那里。预览加载回顶部。 – ShrimpCrackers
请分享您的小提琴链接。 –