Javascript 平滑滚动防止我离开页面
我是Jquery新手,所以现在我尝试使用已经生成的代码并理解它。 我使用了一个平滑的滚动代码,但是如果我不删除,它会阻止我离开页面Javascript 平滑滚动防止我离开页面,javascript,jquery,Javascript,Jquery,我是Jquery新手,所以现在我尝试使用已经生成的代码并理解它。 我使用了一个平滑的滚动代码,但是如果我不删除,它会阻止我离开页面 event.preventDefault(); 但是,如果我删除它,它会变为空白三分之一秒,因为它会转到锚点,然后执行滚动 代码如下: $(document).ready(function(){ $("a").on('click', function(event) { if (this.hash !== ""){ //here is my problem I
event.preventDefault();
但是,如果我删除它,它会变为空白三分之一秒,因为它会转到锚点,然后执行滚动
代码如下:
$(document).ready(function(){
$("a").on('click', function(event) {
if (this.hash !== ""){ //here is my problem I think
//Prevent default anchor click behavior
event.preventDefault(); //here is what makes me unable to leave page
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
window.location.hash = hash;
});
} // End if
});
});
我想做的是:
if(this.hash !== "" && this.split('#')[0] != location.split('#')[0])
但是代码就是不执行,我尝试了其他几种方法,但是一旦我尝试操作“this”,即使我把它放在另一个变量中,然后再操作这个变量,它也不会工作
那么,如何使用“event.preventDefault()”访问其他页面呢
谢谢您可以将if语句更改为此
if (this.hash !== "" && this.href.split('#')[0] != location.href.split('#')[0])
这应该行。谢谢!它不起作用,但这是因为其他原因,但是它起作用了,让我用这种方式操作字符串。如果有人想知道它为什么不起作用,您实际上想要
event.preventDefault()代码>当它相等时,请更换=
与==
一起使用,可用于离开页面