为什么要创建jQuery对象变量?

Jon*_*rum 3 javascript jquery

我看到很多jQuery示例都做了类似的事情

var $element = $('#element');
$element.foo...
Run Code Online (Sandbox Code Playgroud)

而不仅仅是打字

$('#element').foo...
Run Code Online (Sandbox Code Playgroud)

我确实知道如果你正在使用$ element那么节省了一点点的输入,但那些$ element只调用一次或两次的时间呢?为什么有些开发人员在这些实例中将其声明为jQuery对象变量?浏览器处理它也更有效吗?

Tra*_*s J 10

通常这样做是为了避免重新包装元素或重新查询选择器的页面.

比如在点击事件中

$('.className').click(function(){
 var $this = $(this);
 callSomeHelper($this);
 $this.hide();
 if( $this.data("placement") == "somePlacement" ){
  //some logic
 }
});
Run Code Online (Sandbox Code Playgroud)

真正的保护程序是它引用一组元素.

var $allSides = $('.side');
Run Code Online (Sandbox Code Playgroud)

现在回到click事件,您可以引用它而无需重新查询

$('.top').click(function(){
   var door = $allSides.find(':visible');
});
Run Code Online (Sandbox Code Playgroud)

显然有更多的深度示例,但这两个是存储变量的主要情况.