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