許多其他線程和外部論壇建議,我已經嘗試在每個可以想象的地方放置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
請分享您的小提琴鏈接。 –