2009-09-07 65 views
7

我一般在jQuery的

$(document).ready(function() { 
    //stuff 
} 

我只是對大量使用jQuery的一個網站上使用這一點,他們把它用

$j(document).ready(function() { 
    //stuff 
} 

在這個網站上,他們開始幾乎所有出與第j .. 。

function PostComment(form) { 
    form = $j(form); 
    $j('#CommentSubmitButton').hide(); 
    $j('#CommentInProgress').show(); 
    $j.post('/utils/ajaxhandler.aspx', form.serialize(), function(data) { 
    $j('#CommentInProgress').hide(); 
    $j('#CommentSubmitButton').show(); 
    }); 
} 

這只是另一種方式,或者這是依賴於不同版本的jquery或其他?

回答

11

你可以定義,你想如何調用jQuery的功能。 也許這個網站使用另一個庫,它保留$,並因此使用別名$ j。

+0

有用的知識,你可以「做它」,或者你需要定義它/設置它在別的地方嗎? – JasonDavis 2009-09-07 23:29:18

+2

http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function – janoliver 2009-09-07 23:30:55

+0

'$ j = jQuery.noConflict();' – gnarf 2009-09-08 01:29:39

8

這是爲了避免colision與其他庫有:

jQuery.noConflict(); 

例如像原型一些庫也使用了$符號,如果你最終使用它都將最有可能突破。如果你使用$ j開發你的jquery函數,它不會。

+0

在這個網站的情況下,他們可能會說$ j = jQuery.noConflict(); - 然後$ j作爲jQuery中的$可用,並且前面的$(如果有的話)的含義被覆蓋。 – jnylen 2009-09-08 00:15:46

4

這只是一種避免命名衝突的方法。許多JavaScript庫(jQuery碰巧就是其中之一)使用$作爲快捷方式。欲瞭解更多信息,請參閱jQuery.noConflict()

2

它絕對避免與其他圖書館發生衝突。其中最臭名昭着的將是原型和scriptaculous。

+1

也是mootools。 :) – janoliver 2009-09-07 23:29:11

相關問題