對不起,這個不好的問題,但我不知道它是什麼。 最近我看到一個人誰出賣了自己的jQuery腳本和我注意到,功能是基於在此:
$('#div').hisScript{(
var1 : example,
var2 : example2
)};
所以在腳本代碼適用於該分區。我的問題是:這是什麼?以及如何? 我認爲是某種類型的封裝或類似的東西。但是我在互聯網上找不到任何關於(可能是因爲我不知道它是如何命名的)。任何人都可以給我一個例子嗎?
對不起,這個不好的問題,但我不知道它是什麼。 最近我看到一個人誰出賣了自己的jQuery腳本和我注意到,功能是基於在此:
$('#div').hisScript{(
var1 : example,
var2 : example2
)};
所以在腳本代碼適用於該分區。我的問題是:這是什麼?以及如何? 我認爲是某種類型的封裝或類似的東西。但是我在互聯網上找不到任何關於(可能是因爲我不知道它是如何命名的)。任何人都可以給我一個例子嗎?
這被稱爲jQuery插件。
It's very easy to do。一旦導入的jQuery,你可以簡單地做
$.fn.hisScript = function(opt){
// do stuff, this is the jquery object
}
基本上,它的工作原理是因爲$.fn
是$.prototype
和$
別名是jQuery的對象的構造函數。
一個簡單的例子:
$.fn.reverseText = function(opt){
this.each(function(){
var $this = $(this), txt = $this.text();
if (txt.indexOf(opt.having)!=-1) {
$this.text(txt.split('').reverse().join(''));
}
});
}
// reverse the text of all paragraph containing 'sentence'
$('p').reverseText({having:'sentence'});
注意
this
,即使你不立刻想到你會用你的「插件」對於具有多於一個的元素集合感謝您的答案。特別感謝@dystroy,這正是我真正感興趣的學習,不知道這個! (對於括號和大括號感到抱歉,我弄得一團糟) – user2409347
目前還不清楚,如果你問.hisScript,或者他如何傳遞參數。由於另一個用戶發佈了關於作爲jquery插件的hisScript的答案,我會涉及傳入該對象。我發現很多JavaScript新手都對此感到困惑,這個簡單的例子似乎很清楚這個混淆。
想到這一點:
$('#div').hisScript({
var1 : "someString",
var2 : 123123
});
由於這
var obj = new Object();
obj.var1 = "someString";
obj.var2 = 123123;
$('#div').hisScript(obj);
什麼是如此艱難?這只是一個對象,通常用於設置插件 –
順便說一句,你有大括號和括號倒置(或真的有一些魔術) –
@dystroy包括在你的答案以及... –