0

根据这篇文章,使用相同的名称应该允许我创建多个 disabledDatesRule 输入。但是,在我的情况下,它似乎只选择了指定的最后一个实例。我创建了以下简化的测试用例。最终,我想将其切换为具有颜色的自定义渲染器。如果我必须满足于禁用日期,那也可以。

    var today = new Date();
    var dd = today.getDate(); 
    var mm = today.getMonth(); 
    var yyyy = today.getFullYear();        
    var calendar = new Y.Calendar({
      contentBox: "#mycalendar",
      width:'888px',
      showPrevMonth: true,
      showNextMonth: true,
      disabledDatesRule: "tuesdays_and_fridays",

      minimumDate: new Date(yyyy,mm, dd),
      maximumDate: new Date(yyyy,mm, dd+14),

      date: new Date()}).render();

        var rules={};
        var dYear='2014';
        var dMonth='7';
        var dDate='6';
        rules[dYear]={};
        rules[dYear][dMonth]={};
        rules[dYear][dMonth][dDate]="tuesdays_and_fridays";

        var dDate1='7';
        rules[dYear]={};
        rules[dYear][dMonth]={};
        rules[dYear][dMonth][dDate1]="tuesdays_and_fridays";

     calendar.set("customRenderer", {
       rules: rules,
       filterFunction: function (date, node, rules) {
         if (Y.Array.indexOf(rules, 'tuesdays_and_fridays') >= 0) {
           node.addClass("redtext");
         }
       }
     });
4

1 回答 1

0

我自己想通了。您可以有多个 rules[] 声明,但它们必须是唯一的。我删除了第二条规则[dYear] 和规则[dYear][dMonth]。

于 2014-08-06T18:25:03.380 回答