【问题标题】:jquery datepicker highlightjquery datepicker高亮
【发布时间】:2014-04-16 01:04:00
【问题描述】:

我正在尝试突出显示数据库中相应事件的日期。我的代码无法正常工作,并且在日期选择器中仅突出显示数据库中最后一个事件的日期,所有其他事件都没有突出显示。请帮助我找到解决方案。

 var row;          
      var title1 ;
      var date1;
         var events;

$(function() {
    $( "#datepicker" ).datepicker({ minDate:0,

    beforeShowDay: function(date) {
    var result = [true, '', null];
    var matching = $.grep(events, function(event) {
        return event.Date.valueOf() === date.valueOf();
    });

    if (matching.length) {
        result = [true, 'highlight', null];
    }
    return result;
},
onSelect: function(dateText) {
    var date,
        selectedDate = new Date(dateText),
        i = 0,
        event = null;

    /* Determine if the user clicked an event: */
    while (i < events.length && !event) {
        date = events[i].Date;

        if (selectedDate.valueOf() === date.valueOf()) {
            event = events[i];
        }
        i++;
    }
    if (event) {
        /* If the event is defined, perform some action here; show a tooltip, navigate to a URL, etc. */
        alert(event.Title);
    }
}
    }); 
});

 $(function () 
  {

$.ajax({                                      
  url: 'api.php', data: "", dataType: 'json',  success: function(rows)        
  {
    for (var i in rows)
    {
      row = rows[i];          

      title1 = row[0];
      date1 = row[1];

       events = [    
 { Title:"title1", Date: new Date(date1) }, 

];

    } 
  } 
});
  }); 

块引用

【问题讨论】:

    标签: jquery datepicker highlight


    【解决方案1】:

    试试下面的代码,我假设你的事件数组是静态的

    <script>
         var row;          
         var events = [    
                        { "Title":"title1", "Date": new Date("15/March/2014") },
                        { "Title":"title2", "Date": new Date("16/March/2014") },
                        { "Title":"title3", "Date": new Date("17/March/2014") },
                        { "Title":"title4", "Date": new Date("20/March/2014") }, 
                      ];
    
    $(function() {
        $( "#datepicker" ).datepicker({ minDate:0,
    
        beforeShowDay: function(date) {
                var result = [true, '', null];
                var matching = $.grep(events, function(event) {
                    if(event.Date.valueOf() === date.valueOf())
                        result = [true, 'highlight', event.Title];
                });
                return result;
            }
        }); 
    });
    </script> 
    

    【讨论】:

    • 当我尝试从数据库中检索数据时,只有最后一行被突出显示意味着最后一个日期。我应该改变什么才能让它工作......?我找不到错误..
    • 您能否交叉检查您通过 ajax 返回的事件数组,这可能会给您带来问题吗?也请在 datepicker 调用之前进行 ajax 调用..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多