如何将Javascript对象的所有属性放置到另一个对象中?
问题描述:
我正在使用波尔图的自定义JQuery Bootstrap向导,我被要求使用 ,当使用链接时,它会在向导的相关选项卡上。如何将Javascript对象的所有属性放置到另一个对象中?
,我唯一需要的是从以下对象变量检索所有的属性:
$('#w3').bootstrapWizard({
tabClass: 'wizard-steps',
nextSelector: 'ul.pager li.next',
previousSelector: 'ul.pager li.previous',
previousLinkSelector: 'ul.pager li.finish a.previous-link',
firstSelector: null,
lastSelector: null,
onNext: function (tab, navigation, index, newindex) {
var validated = $('#w3 form').valid();
if (!validated) {
$w3validator.focusInvalid();
return false;
}
},
onTabClick: function (tab, navigation, index, newindex) {
if (newindex == index + 1) {
return this.onNext(tab, navigation, index, newindex);
} else if (newindex > index + 1) {
return false;
} else {
return true;
}
},
onTabChange: function (tab, navigation, index, newindex) {
var $total = navigation.find('li').size() - 1;
$w3finish[newindex != $total ? 'addClass' : 'removeClass']('hidden');
$('#w3').find(this.nextSelector)[newindex == $total ? 'addClass' : 'removeClass']('hidden');
},
onTabShow: function (tab, navigation, index) {
var $total = navigation.find('li').length - 1;
var $current = index;
var $percent = Math.floor(($current/$total) * 100);
$('#w3').find('.progress-indicator').css({ 'width': $percent + '%' });
tab.prevAll().addClass('completed');
tab.nextAll().removeClass('completed');
}
});
我需要把它放在一个全局变量,所以我可以使用所有属性 (尤其是onTabClick属性)。
我试着做以下方式:
var $mainSettings = $.fn.bootstrapWizard;
的问题是,$ mainSettings仅包括函数声明。
什么是从$ .fn.bootstrapWizard获取所有属性的正确方法; ?
答
它取决于这个jquery插件如何公开它接收到的配置。如果它不暴露这个,那么你的运气不好。但是,您可以将配置分配给一个变量并将该变量传递给jquery插件。
var $mainSettings = {
tabClass: 'wizard-steps',
nextSelector: 'ul.pager li.next',
previousSelector: 'ul.pager li.previous',
previousLinkSelector: 'ul.pager li.finish a.previous-link',
firstSelector: null,
lastSelector: null,
onNext: function (tab, navigation, index, newindex) {
var validated = $('#w3 form').valid();
if (!validated) {
$w3validator.focusInvalid();
return false;
}
},
onTabClick: function (tab, navigation, index, newindex) {
if (newindex == index + 1) {
return this.onNext(tab, navigation, index, newindex);
} else if (newindex > index + 1) {
return false;
} else {
return true;
}
},
onTabChange: function (tab, navigation, index, newindex) {
var $total = navigation.find('li').size() - 1;
$w3finish[newindex != $total ? 'addClass' : 'removeClass']('hidden');
$('#w3').find(this.nextSelector)[newindex == $total ? 'addClass' : 'removeClass']('hidden');
},
onTabShow: function (tab, navigation, index) {
var $total = navigation.find('li').length - 1;
var $current = index;
var $percent = Math.floor(($current/$total) * 100);
$('#w3').find('.progress-indicator').css({ 'width': $percent + '%' });
tab.prevAll().addClass('completed');
tab.nextAll().removeClass('completed');
}
};
$('#w3').bootstrapWizard($mainSettings);