-1
這是到目前爲止我的jQuery插件參數:jQuery的延長()在延長()
function lightbox(options)
{
// setting default parameters
var params = $.extend(
{
// show/hide & enable/disable options
keyNav : true, // boolean
objClickNav: false, // boolean
showNav : true, // boolean
showTitle : true, // boolean
showPagination : true, // boolean
debugMode : false, // boolean
disableScrolling : true, // boolean
fullscreen : false, // boolean
autoScale : true, // boolean
staticHeight: 'auto', // integer or 'auto'
staticWidth: 'auto', // integer or 'auto'
// content options
contentType : 'image', // defines the type of content shown in the lightbox
// options: 'image'
animationType : 'default', // defines the type of animation when switching objects
// options: 'default', 'slide'
}, options);
}
我不能在互聯網上的任何地方找到答案,所以這就是爲什麼我要問在這裏。我想有當前extend()
內的extend()
,這樣我就可以宣佈我的插件是這樣的:
lightbox({
keyNav : true,
showNav : false,
scale({
autoScale : false,
staticHeight : 800,
})
content({
contentType : 'image',
animationType : 'slide',
})
});
什麼是這樣做的正確方法是什麼?
你應該要創建一個與傳入插件的設置具有相同結構的默認設置對象,那麼您可以只用'.extend'。你現在所擁有的是一個扁平的對象作爲默認對象,然後突然傳入一個嵌套對象,你將會遇到很多迭代的麻煩,並且弄清楚什麼地方會發生什麼,而不是僅僅把它們變成同樣的結構首先。 – adeneo
也許你可以用一個例子來解釋? –