gpt4 book ai didi

jquery - 当我编写简单的 jquery 插件时覆盖设置

转载 作者:行者123 更新时间:2023-11-30 23:55:01 25 4
gpt4 key购买 nike

我尝试使用一些 php 代码编写简单的 jquery 插件来显示数据库中的表。插件允许用户搜索、浏览页面和排序。我知道有一些很棒的插件,但我是一个新手(任何类型的编程都只有 6 个月的时间),我尝试学习一些东西。

实际上一切都已完成,但我停止尝试做“多级”选项。

用户最简单的选项看起来像这样(几乎所有选项看起来都是这样):

$('#main').ableTable({
mode :'sqlite'
})

然后它会覆盖默认设置:

var settings = $.extend({
mode : 'mysql'
} ,options);

很简单。

但是如果我有一些更复杂的选项,例如:

var settings = $.extend({
translate :{
navigation :{
prev :'previous' ,
next :'next'
} ,
search :'search' ,
no_result :'nothing was found' ,
from :'from' ,
total :'total'
}
// other options
} ,options);

那么如果用户仅声明:

$('#main').ableTable({
translate :{
navigation :{
prev :'poprzedni'
}
}
})

它会覆盖 settings.translate 中的所有内容

如果我只想覆盖settings.navigation.prev(在本例中)并保留其余的默认设置,如何正确处理用户定义的选项?

最佳答案

您需要在重载的 extend() 函数中使用 deep 参数 - 它基本上是同一函数的另一个版本,但它使其递归,因此它看起来在内部对象,而不仅仅是顶层......

var settings = {
translate :{
navigation :{
prev :'previous' ,
next :'next'
} ,
search :'search' ,
no_result :'nothing was found' ,
from :'from' ,
total :'total'
}
}

var options = {
translate: {
navigation: {
prev: "something else"
}
}
};

$.extend(true, settings, options);

查看 extend() 的文档以了解更多信息...

https://api.jquery.com/jquery.extend/

关于jquery - 当我编写简单的 jquery 插件时覆盖设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32382185/

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