2013-06-12 48 views
-1

我在網上做了一些教程,我建立了我的JavaScript文件正是如此:你可以在`ready`回調中使用`this`嗎?

$(document).ready(function(){ 
    $(this).keydown(function(key){ });  
}); 

例子中的代碼是這樣的:

$(document).ready(function(){ 
    $(document).keydown(function(key){ });  
}); 

是否有與此代碼有區別嗎?它會做同樣的事情嗎?

+3

你試試看? – Mathletics

+1

是啊都做同樣的事情。 'this'引用'ready'處理程序中的'document'節點。 http://jsbin.com/ucihup/1/edit –

+0

兩者都可以正常工作,但由於「文檔」總是可用並且查找起來很便宜(至少我認爲是這樣),所以使用'this'關鍵字並不是很常見的做法(據我所知),可能是因爲性能增益最小,而混合範圍和使用錯誤的'this'的機會可能是更復雜代碼中的問題。 – adeneo

回答

1

是的,你可以使用$這種在就緒狀態,因爲你提供了「文件」作爲運營商。 如果啓動

$(document).ready(function(){ console.log(this); }); 

當預覽您的控制檯,你應該注意,您收到文檔重新與調用只是「文檔」。

而且,我只是想指出一個簡單的方法:

$(function(){ console.log(this); }); 

將返回文檔爲好。

0

這些語句都做同樣的事情。 http://jsfiddle.net/dJevP/

$(document).ready(function(){ 
    $(this).keydown(function(key){ 
     alert("this"); 
    });  
}); 

$(document).ready(function(){ 
    $(document).keydown(function(key){ 
     alert("document"); 
    });  
}); 
相關問題