如何在jQuery datepicker中指定多个选项

时间:2009-11-05 09:45:36

标签: javascript jquery datepicker

我正在使用jQuery Datepicker。我正在使用follwing脚本将datepicker附加到其类为datepicker的所有控件。

<script type="text/javascript">
  $(document).ready(function(){
    $(".datepicker").datepicker({ showButtonPanel: true});
  });
  </script>

现在,在创建日期选择器时是否可以使用多个选项,如此

$(".datepicker").datepicker({ showButtonPanel: true}, {showOtherMonths: true });

它似乎不起作用。

2 个答案:

答案 0 :(得分:4)

你需要写:

$(".datepicker").datepicker({ showButtonPanel: true, showOtherMonths: true });

这是jQuery中常见的习惯用法,为选项使用JSON对象(哈希)。

答案 1 :(得分:3)

大多数jQuery插件的参数之一接受一个对象作为参数,例如{ option1: 'optionValue'}。这允许用户传递他们想要从默认值更改的任何选项。在大多数插件中,此选项对象随后使用$.extend()与默认选项合并,如果已定义,则使用选项对象中的属性覆盖任何默认选项。

编写插件的常用方法之一如下

(function($) {

    $.fn.myPlugin = function(options) {

    var settings = $.extend({  // these are the default properties
                               option1: 'default value',
                               option2: true,
                               option3: 5437
                            }, 
                            // merge with the options object passed in
                            // or an empty object
                            options || {});

    // now we can use the settings object in our plugin, which will have
    // property values from the settings object and the options object passed in


    }

})(jQuery);

options || {}中的$.extend()部分防范options传递的错误值。 $.extend()中对象的顺序决定哪些属性优先 - 在对象上定义的属性将使其值被替换(在此处大致使用术语)由在a上声明的相同属性名称后来的对象。