我正在尝试链接到 Concrete5 中其他页面的部分但无法使其正常工作。当我将鼠标悬停在链接上时,窗口左下角会显示正确的地址(Chrome)。但是,当我点击链接时没有任何反应(地址栏中没有文字,页面上没有任何变化)。
我的教授似乎认为这是我的JS文件中的一个问题,因为我已经得到了一个未定义的顶级'属性错误。
我的链接:
<a href="<?=$this->url('programs');?>#delinquencyprogram">Delinquency Intervention + Prevention</a>
所需的结束位置:
http://maysp.tylerhalldesigns.com/index.php/programs#delinquencyprogram
主播:
<hr id="delinquencyprogram" class="anchor">
Jquery:
$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash,
nav = $('nav');
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
if (nav.height) {
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
}
} // End if
});
});
我对Jquery / JS有一个非常初学的理解,我不确定是否需要为nav创建一个var或者if(nav.length)片段到底是什么(我理解它的方式是它确定如果我跳到的对象有内容)。
开发者工具中的错误:
Uncaught TypeError: Cannot read property 'top' of undefined
at HTMLAnchorElement.<anonymous> (maysp.js:79)
at HTMLAnchorElement.dispatch (jquery.js:4)
at HTMLAnchorElement.r.handle (jquery.js:4)
如果需要更多信息,我很乐意提供。
网站可以在这里看到:http://maysp.tylerhalldesigns.com/index.php
该主页上明亮的彩色按钮需要链接到“程序”页面。使用导航(程序&gt;成功)进行链接时,我也遇到了同样的问题。
谢谢!
答案 0 :(得分:0)
我向同事请求了这方面的帮助,他建议完全删除JS平滑滚动代码以查看锚点是否在没有它的情况下工作。他们这样做了,所以我删除了当前的代码并将其替换为以下内容:
$(document).ready(function(){
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
|| location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 800);
return false;
}
}
});
});
这会将平滑滚动效果应用于页面上的每个链接。
我希望这能帮助那些像我一样被困的人!