我正在尝试理解jquery插件的语法,因为我想将两个插件合并为一个。闪光灯还需要能够停止de interval或多次运行。
无论如何,这个语法是否与
jQuery.fn.extend({
everyTime: function(interval, label, fn, times) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, times);
});
},
oneTime: function(interval, label, fn) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, 1);
});
},
此
$.fn.blink = function(options)
{
因为看起来第一个(没有=)是一种同时设置多个方法的方法。是这样的吗?另外,既然我在这里,那么向jquery对象添加元素和一些逻辑的原因是什么呢?
jQuery.extend({
timer: {
global: [],
guid: 1,
dataKey: "jQuery.timer",
(来自计时器插件)
发布于 2010-01-02 17:53:16
jQuery.extend用于扩展任何具有附加函数的对象,但jQuery.fn.extend用于扩展jQuery.fn对象,它实际上一次添加了几个插件函数(而不是分别分配每个函数)。
jQuery.extend
var obj = { x: function() {} }
jQuery.extend(obj, { y: function() {} });
// now obj is an object with functions x and y
jQuery.fn.extend
jQuery.fn.extend( {
x: function() {},
y: function() {}
});
// creates 2 plugin functions (x and y)
发布于 2012-12-21 22:54:23
jQuery.extend({
abc: function(){
alert('abc');
}
});
用法:$.abc()
.(不需要像$.ajax()
那样的选择器。)
jQuery.fn.extend({
xyz: function(){
alert('xyz');
}
});
用法:$('.selector').xyz()
.(选择器是必需的,如$('#button').click()
。)
它主要用于实现$.fn.each()
。
我希望它能帮上忙。
发布于 2013-02-12 04:04:06
jQuery.extend和jQuery.fn.extend之间的
区别?
实际上,除了它们的基本引用之外,没有其他的引用。在jQuery source中,您可以阅读:
jQuery.extend = jQuery.fn.extend = function() { … };
那么它是如何工作的呢?documentation为:
将两个或多个对象的内容合并到第一个对象中。
它只是一个for-in-loop,用于复制属性,并使用一个标记来递归嵌套对象。还有另一个特性:
如果只向$.extend()
提供了一个参数,则为
,这意味着省略了目标参数
// then the following will happen:
target = this;
因此,如果在jQuery
本身(没有显式目标)上调用该函数,它将扩展jQuery名称空间。如果在插件上调用该函数(没有明确的目标),它将扩展所有( jQuery.fn
)方法所在的jQuery原型对象。
https://stackoverflow.com/questions/1991126
复制相似问题