javascript - 将多个选项传递给 JavaScript 中的函数

标签 javascript

我的页面中有两个共享相同选项的 slider :

var options1 = {
    animation: "slide",
    controlNav: false,
    animationLoop: false,
    slideshow: false,
    itemWidth: 310,
    itemMargin: 5
}

var options2 = {
    animation: "slide",
    controlNav: false,
    animationLoop: false,
    slideshow: false
}

然后我有这样的东西:

$('#carousel').flexslider(options1);
$('#slider').flexslider(options2);

$('#carousel2').flexslider(options1);
$('#slider2').flexslider(options2);

问题是我需要在选项末尾添加一个每个选项都不同的选项,即: asNavFor: '#slider' for options1 和 sync: “#carousel” 用于选项二。我尝试过,但没有成功:

$('#carousel').flexslider(options1, {asNavFor: '#slider'});
$('#slider').flexslider(options2, {sync: "#carousel"});

$('#carousel2').flexslider(options1, {asNavFor: '#slider2'});
$('#slider2').flexslider(options2, {sync: "#carousel2"});

我想避免重复这些选项,因为每个 slider 的选项都是相同的。提前致谢!

最佳答案

您可以使用Object.assign使用您的选项作为模板创建一个新对象:

$('#carousel').flexslider(Object.assign({}, options1, {asNavFor: '#slider'}));
$('#slider').flexslider(Object.assign({}, options2, {sync: "#carousel"}));

$('#carousel2').flexslider(Object.assign({}, options1, {asNavFor: '#slider2'}));
$('#slider2').flexslider(Object.assign({}, options2, {sync: "#carousel2"}));

如果您需要支持旧浏览器,您可以使用 jQuery 的 $.extendpolyfill相反。

关于javascript - 将多个选项传递给 JavaScript 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37911774/

相关文章:

javascript - 如何在其他地方使用 $http.get 的响应

Javascript:添加一个类,其中类

javascript - 数组存储与输入不同的数字

javascript - Stencil.js 新E2EPage 样式

javascript - 页面加载后显示 block 几秒钟

javascript - 根据缩放级别添加或删除多边形

javascript - RxJS:Observable.webSocket() 获取 onopen、onclose ……

javascript - 我的值(value)不会文本对齐中心

javascript - 如何在Android中读取有效的base64文件? ( Cordova )

javascript - 将 JQuery 对话框置于前面