Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何”;返回false";可以优化您的脚本_Javascript_Jquery_Performance - Fatal编程技术网

Javascript “如何”;返回false";可以优化您的脚本

Javascript “如何”;返回false";可以优化您的脚本,javascript,jquery,performance,Javascript,Jquery,Performance,所以我在读这篇文章,#9,转载在下面,我不完全明白,有人能给我解释一下吗(用不同于下面解释的方式) 返回错误 你可能已经注意到,每当你的函数没有返回false时,你就会跳到页面的顶部。当处理较长的页面时,这个结果可能会很烦人 因此,与其 $('#item').click (function () { // stuff here }); 写 如果#item是一个带有href的锚元素,则以下情况基本正确,这很可能类似于有一个很好的解释(与event.preventDefault()相比): 区

所以我在读这篇文章,#9,转载在下面,我不完全明白,有人能给我解释一下吗(用不同于下面解释的方式)

  • 返回错误 你可能已经注意到,每当你的函数没有返回false时,你就会跳到页面的顶部。当处理较长的页面时,这个结果可能会很烦人
  • 因此,与其

    $('#item').click (function () {
      // stuff here
    });
    


    如果
    #item
    是一个带有href的锚元素,则以下情况基本正确,这很可能类似于
    有一个很好的解释(与
    event.preventDefault()
    相比):

    区别在于返回值为false;更进一步,它还防止事件传播(或“冒泡”)DOM。您可能不知道这一点的原因是,每当元素上发生事件时,该事件也会在每个父元素上触发。假设你在盒子里有一个盒子。两个框上都有单击事件。单击内部框,外部框也会触发单击,除非您阻止传播

    .click(…)
    .on(“click”,…)
    的别名

    如jQuery文档中所述:

    从事件处理程序返回
    false
    将自动调用
    event.stopPropagation()
    event.preventDefault()
    false
    值也可以作为
    function(){return false;}
    的简写形式传递给处理程序。因此,
    $(“a.disabled”)。在(“click”,false)将事件处理程序附加到类为“disabled”的所有链接,该类阻止在单击链接时跟踪它们,并阻止事件冒泡

    这是jQuery为方便起见添加的一个特性(许多特性之一)

    至于性能,我不确定这是否会以任何有意义的方式提高性能。
    那篇文章大体上是“我在互联网上听到的东西”。我怀疑作者是否真正理解他们给出的各种提示的原因

    例如,如果您正在缓存selects(#6),那么对于selection(#4),您将不会从优先选择ids而不是类中获得太多好处


    另一个例子是#3,它基本上是说“不要使用jQuery”。在jQuery中使用任何东西都会导致性能的微小下降,但这是您在决定使用jQuery时所同意的权衡。jQuery的重点不在于提高性能,而在于提高便利性。

    虽然我太笨了,无法理解这句话的意思,但我也不会太笨,无法意识到我可以在这里问任何愚蠢的问题=)是的,我知道这对链接是正确的,你能想到其他你可能想做的例子吗
    event.stopPropagation()
    ?我不确定,但我假设您只想在父元素也具有该事件侦听器的情况下停止冒泡。其他的例子,可能是按键事件,但不,我没有遇到任何我能回忆起来的。关于它是一个链接的评论更多的是关于页面在点击时滚动到顶部,这通常是在锚上进行后续操作的结果(除非有其他自定义代码)。我肯定会将其用于链接(参见其他答案),但除此之外,我想知道这还有什么帮助。引用
    return false
    调用
    event.stopPropagation()
    event.preventDefault()
    是我在寻找的实际答案。谢谢
    $('#item').click (function () {
      // stuff here
      return false;
    });