为什么 jquery 代码块中的“return !1”会导致链接到页面另一部分的锚标记的 url 不会更改?

杰罗德

我的页面中有 html 锚标记,它们只是将我带到页面的另一部分,下面的代码是控制动画和移动滚动速度的 jquery。

$("a").click(function(){
    $("html, body").stop().animate({scrollTop:$($.attr(this,"href")).offset().top},750);
    
    return !1
  })

问题是“返回!1”导致 url 不改变。意思是,如果我在“localhost:8000/”,并且我单击带有 href="#contact" 的链接,则 url 通常会更改为“localhost:8000/#contact”。返回 !1 可以防止这种情况发生,尽管在我的一生中,我无法弄清楚原因或找到一个在线资源来解释它。我玩弄了它,我必须返回 !num,其中 num 是 0 以外的任何数字,正数或负数。谁能向我解释一下?我想了解为什么会发生这种情况以及 return !# 用于什么。

Tor

当您在 jQuery 事件处理程序中返回 false (!1) 时,它会阻止默认操作完成和冒泡 DOM。

并且!ing 任何数字将尝试将该数字转换为布尔值(任何 >0 都将返回 true)并将其取消为 false。

鉴于:

0 = false

1 = true

>1 = true

<0 = true

以下是正确的:

!0= not false=true

!1= not true=false

!2= not true=false

!3= not true=false

...等等

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章