对不起,这个不好的问题,但我不知道它是什么。 最近我看到一个人谁出卖了自己的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包括在你的答案以及... –