Cra*_*nox 9 javascript javascript-events coffeescript
我看到很多人在分配事件之前检查是否存在DOM元素,例如(coffeescript):
$ ->
if( $("#progressbar").length > 0 )
$("#progressbar").progressbar( value: 0 )
Run Code Online (Sandbox Code Playgroud)
这有必要吗?如果我们只是添加事件,无论元素是否存在,是否有性能损失?
Ric*_*asi 14
jQuery中的每个方法调用都包含在一个.each函数中,因此通常不需要检查元素是否存在 - 如果集合为空,则不会对被调用函数进行迭代,它会无声地失败.给出的示例是一个很好的例子,$('#progressbar').progressbar()直接调用没有任何伤害或性能损失.
当你不希望这样做,可能是因为你在操纵DOM或做取决于元素的存在一些昂贵的操作,请确保您缓存的号召,特别是如果它是一个复杂的选择:
specialThings = $('section .special')
if specialThings.length > 0
doStuffWith specialThings
Run Code Online (Sandbox Code Playgroud)
或者,利用coffeescript的var安全性:
if (specialThings = $ 'section .special').length
doStuffWith specialThings
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5098 次 |
| 最近记录: |