gpt4 book ai didi

javascript - jquery 插件的子选项

转载 作者:行者123 更新时间:2023-12-01 02:14:03 26 4
gpt4 key购买 nike

我正在开发一个插件。确切地说,是一个拖放插件。

我的默认值如下所示:

var defaults = {
activeClass: false,
containment: false,
cookies: true,
cookieExdate: 65,
cursor: 'crosshair',
cursorAt: {
top: false,
bottom: false,
left: false,
right: false
},
delay: 0,
distance: 0,
dragLimitation: false,
ghostDrop: true,
ghostOpacity: '0.50',
ghostRevert: false,
grid: [20,50],
handle:false,
iFrameFix: true,
instantGhost: false,
not: false,
onDrop: function() {},
onPickUp: function() {},
radialDrag: true,
radialOutline: false,
radius: 100,
revert: false,
revertDuration: 500,
strictMovement: false,
target: {
init: '#container',
lock: false,
offTarget: function(t) {
$(t).removeClass('i');
},
onTarget: function(t) {
$(t).addClass('i');
}
},
zIndex: false
}

然后我使用:

var o = $.extend(默认值, 选项)

获取默认值。

例如。 o.cursorAt.left. 这将获取 cursorAt 中 Sub 选项 left 的值正如你所看到的,我有子选项(我称之为),它们看起来像这样:

cursorAt: {
top: false,
bottom: false,
left: false,
right: false
},

当我在我的插件中使用它时,我只想使用一个。例如:

cursorAt: {
bottom: 0
}

但这不起作用,我知道这是因为在cursorAt点的默认值中必须存在以下内容:

{
top: false,
bottom: false,
left: false,
right: false
}

有没有办法让它发挥作用,所以我只需要命名一个。有什么简单的办法吗?或者这会是一个艰难而复杂的过程。我的插件代码已经有 1000 行,所以我不想进行重大更改。

Jsfiddle 示例:

这有效:

http://jsfiddle.net/C4f97/

但这不是:http://jsfiddle.net/C4f97/1/ <<我需要这个才能工作...

对我的插件有任何评论都会很好;)提前致谢!

最佳答案

试试这个:

var o = $.extend(true, {}, defaults, options);

这里有两个值得注意的细节。第一个是 bool 值 true,它告诉 jQuery 递归地扩展它们(而不是覆盖你的“子选项”)。

第二个是 {},它创建一个新对象,因此您每次创建新实例时实际上并不需要修改默认值。

关于javascript - jquery 插件的子选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com