当前位置:嗨网首页>书籍在线阅读

39-讨论

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.9.3 讨论

为什么 $clientX 和其他变量名以 $ 字符开头? $ 在JavaScript中没有特别的含义——它被当作字母表中的一个字符。在jQuery代码中使用 $ 前缀只是一个约定,提醒人们该变量包含对jQuery对象的引用,而不是DOM元素等,因为变量名 $foobar 从视觉上很类似jQuery操作 $('#foobar') 。 当需要同时使用jQuery对象和底层的DOM元素时,这种约定特别有用,例如:

优化代码的经典方法之一是将重复的计算“提升”到循环之外,这样就只需要计算一次。在循环中未作改变的任何值都应该只在循环开始之前计算一次。如果这些计算的代价很高,循环就会因此而大大加速。

这种方法在“循环”是一系列频繁触发的事件(如mousemove)而且“计算”是一个jQuery选择器的时候也很合适。将选择器提升到事件处理程序之外,将使事件处理程序的响应更快。

当然,如果在一个循环中调用多个选择器,也同样能够从将它们移出循环中受益。

注意

var $foo = $('#foo'),foo = $foo[0];
//现在可以使用jQuery对象:
$foo.show();
//或者DOM元素:
var id = foo.id;