JQuery插件 - 将选项作为对象传递

时间:2011-09-23 21:16:07

标签: jquery jquery-plugins options

我构建了一个自定义消息对话框JQuery插件,效果很好。但是,我试图允许用户从输入文本字段(即背景颜色,字体大小等)设置选项。然后我创建一个包含所有非空选项的对象,并使用默认选项将我的插件传递给$ .extend。 不能让它工作!有什么想法吗?

messageBox_settings是要用作选项的输入字段的类。

字段'id'=选项名称。

我循环遍历每个字段并检查任何非空字段。

在插件函数调用中手动定义各个选项时,插件可以正常工作。

$('button#show_messagebox').click(function(){
            var optionLabel = '';
            var optionValue = '';
            var optionsArr = {};
            $('.messageBox_settings').each(function(){
                if($(this).val()!=""){
                    optionLabel = $(this).attr('id');
                    optionValue = $(this).val();
                    $.extend(optionsArr,{optionLabel:optionValue});
                }
            });
            //optionsArr = {optionLabel:optionValue}; Just a test when passing one option
            $('.messageBox_test').messageBox(optionsArr);

1 个答案:

答案 0 :(得分:2)

optionsArr是一个javascript对象,可以像对象的属性名称索引的关联数组一样使用。

var options = {};
$('.messageBox_settings').each(function(){
    if($(this).val()!=""){
        optionLabel = $(this).attr('id');
        optionValue = $(this).val();
        options[optionLabel] = optionValue;
    }
});