2010-09-27 31 views
2

當我查看JQuery插件代碼時,在我看來,我們似乎在創建一個函數(儘管我們使用的是JQuery.fn語法)在功能上,函數和插件有什麼不同?JQuery插件和函數之間的區別

+0

的可能重複的[jquery的 - $ .functionName和之間的差異$ .fn.FunctionName]函數(HTTP://計算器.com/questions/2845981/jquery-difference-between-functionname-and-fn-functionname) – redsquare 2010-09-27 23:18:47

+0

@redsquare - 我不同意這是重複的,他詢問函數,而不是jQuery對象上的函數,更狹義的問題,你作爲一個愚蠢的聯繫...它通常有一個更狹窄和特定的目的。 – 2010-09-28 00:19:21

回答

4

的函數被只是一個普通的JavaScript函數,例如:

function doSomething(param) { 
    alert(param); 
} 

一個插件旨在被上一組元素的運行,例如:

jQuery.fn.plugin = function(param) { 
    return this.attr('something', param); 
} 

這將設置'something'屬性上,它被稱爲上的所有元素,像這樣:

$('.selector').plugin('value'); 

我如果你打算在一組元素上使用這個函數,比如在一個jQuery鏈中,那麼一個插件可能是你的答案......如果你只是調用一個函數並且做了一些事情,實際上與一個元素無關一組元素,使用一個普通的命名函數。

+0

「fun」=>「run」? – Hello71 2010-09-27 23:48:31

+0

@ Hello71 - 難道不是兩個?是的,這是一個錯字,謝謝:) – 2010-09-27 23:49:31

3

基本上,一個jQuery插件是一個函數,旨在擴展jQuery的功能,並且可以比常規函數更「自然地」應用於選擇器。

0

不同的是,使用$ .fn意味着你可以調用鏈接到任何jQuery對象

相關問題