2014-04-07 45 views
2

我從來沒有見過任何人這樣做過。任何人都可以在這方面啓發我嗎?這是從here

jQuery(function ($) { //What's with the $ as an argument? 
    $('#flux').bind('scroll', function() { 
     if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) { 
      alert('end reached'); 
     } 
    }) 
}); 

看來他可以聲明一個函數並同時運行它。

+0

是隻有「$」參數的這個問題,還是這是您第一次遇到jQuery代碼? –

+0

http://learn.jquery.com/using-jquery-core/document-ready/ –

+0

@ArlaudPierre不,先生,我不知道這是另一種方式來做$(document).ready();.在另一個說明中,我只是在沒有$參數的情況下測試了這個函數,它無論如何工作它有什麼用途? – geoyws

回答

2

這是速記http://api.jquery.com/ready/

的參數$實際上是在jQuery的 - 它經常被用來避免與其他一些全局變量$衝突

參見:http://api.jquery.com/jQuery/#jQuery3

+0

沒有任何頁面示例使用「$」作爲函數參數。 –

+0

我不確定我是否正確理解你,但在第二個鏈接中,最後一個示例使用$作爲參數。它有點像閉包,在那裏你傳遞全局變量,但有別名:''(function($,hello,undefined){/ * ... * /})(jQuery,'something');''' – Misiur

+0

Oh okay ,我只在準備好的頁面上檢查它,我的壞。我們知道任何其他與jQuery衝突的插件嗎? –

0

看來,他可以聲明一個函數並同時運行它。

函數不在這裏運行,它只傳遞給jQuery(它將在文檔準備就緒時運行)。

function($){//作爲參數的$是什麼?

這是一個模塊的JavaScript的概念:

而不是具有該功能是指全球$(這可能最終會被意想不到的事情),你在$作爲參數傳遞(jQuery將在這裏爲你做)。 然後在函數體內$指向那個本地對象。

我只是測試了沒有$參數的函數,它的工作原理不管。

是的,但那是因爲你也有一個全局對象$。明確傳遞它的想法是避免讓函數訪問全局範圍。

相關問題