做什麼區別$
在匿名函數的開始?
該實施例:
(function() {
...
})();
對戰這一個:
$(function() {
...
})();
做什麼區別$
在匿名函數的開始?
該實施例:
(function() {
...
})();
對戰這一個:
$(function() {
...
})();
(function() {})();
線之上創建一個匿名函數,然後執行它馬上
$(function() {})();
假設你有jQuery的加載,線以上將導致錯誤。這部分$(函數(){})將通過一個匿名函數到jQuery的是被運行。 jQuery將返回一個Document對象給你。因爲你有結束括號(),Javascript會嘗試執行Document對象作爲函數。由於Document對象不是函數,因此會引發TypeError異常。
你的第一個例子是自動執行的功能,即開始後馬上執行的定義,而第二個是由jQuery在準備好處理文檔時執行的。
爲了更好地理解爲什麼第一個模式是有用的,你可以參考this SO answer。
您也可以閱讀更多關於傳遞函數的jQuery的文檔上爲.ready()
function。
像所有其他的答案陳述
$(function(){
...
});
真的只是
jQuery(function(){
});
,第二個會的工作是相同的,這一點,在你的榜樣其他類型的看跌期權的功能之間的差異是,首先必須從某個地方叫,那裏的jQuery的版本 - 如果jQuery是在HTML載入它會自動在文件準備好運行。
請注意$()也是Prototype.js中的一個函數。不要只假定jQuery,因爲RubyOnRails(默認使用原型)也同樣受歡迎。 – slebetman
謝謝的人很好回答! –
我可以得到複選標記嗎? – richardaday
「jQuery安裝」ಠ_ಠ –