如何在日期选择器中突出显示所选日期

问题描述 投票:0回答:3

首先有一种方法可以不突出显示当前日期。其次,有没有一种方法可以像突出显示当前日期一样突出显示特定日期?

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<link type="text/css" href="css/calendar-theme/jquery-ui-1.8.16.custom.css" rel="stylesheet" /> 
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>


<script type="text/javascript">
var dates = [new Date(2011, 9 - 1, 19),
             new Date(2011, 9 - 1, 20),
             new Date(2011, 9 - 1, 20),
             new Date(2011, 9 - 1, 21),
             new Date(2011, 10 - 1, 31)];

$(function() {

    $('#datepicker').datepicker({
        numberOfMonths: [1, 1],
        beforeShowDay: highlightDays,
    });


    $('#datepicker').click(function() {
        // put your selected date into the data object
        var data = $('#datepicker').val();

        $.get('getdata.php?date=' + data, function(data) {
            $('#events').html(data).show('slow');
        });
    });

    function highlightDays(date) {
        for (var i = 0; i < dates.length; i++) {
            if (dates[i].getTime() == date.getTime()) {
                return [true, 'highlight'];
            }
        }
        return [true, ''];
    }
});
</script>

<style>
#highlight, .highlight {
    background-color: #000000;
}
</style>  

</head>
<body>


<div id="datepicker" style="float:left;margin: 0 10px 0 0;font-size: 72.5%;"></div>

<div id="events" style="float:left;font-size: 10pt;">
<p>Select a date on the calendar to see events.</p>
</div>

<div style="clear:both"></div>
</body>
</html>
jquery jquery-ui datepicker
3个回答
2
投票

首先有一种方法可以不突出显示当前日期。

是的,您可以通过从锚元素中删除

.ui-state-highlight
.ui-state-hover
类来取消突出显示。

其次,有没有一种方法可以像突出显示当前日期那样突出显示特定日期?

是的,可以将用于突出显示当前日期的类添加到您想要突出显示的那些日子,或者使用

.ui-state-highlight
的样式覆盖 CSS。

对于第一种方法,这里有一个示例代码片段:

$('#datepicker').datepicker({
    numberOfMonths: [1, 1],
    beforeShowDay: highlightDays
}).click(function() {
    // question 1
    $('.ui-datepicker-today a', $(this).next()).removeClass('ui-state-highlight ui-state-hover');

    // question 2
    $('.highlight a', $(this).next()).addClass('ui-state-highlight');
});

查看第一种方法的实际应用:http://jsfiddle.net/william/Aut9b。 请参阅第二种方法的实际应用:http://jsfiddle.net/william/Aut9b/1/.


1
投票

使用 jQuery UI 日期选择器的 beforeShowDay 选项突出显示日期选择器中选定的日期。这是简单的代码:

$( function() {
    // An array of dates
    var eventDates = {};
    eventDates[ new Date( '08/07/2016' )] = new Date( '08/07/2016' );
    eventDates[ new Date( '08/12/2016' )] = new Date( '08/12/2016' );
    eventDates[ new Date( '08/18/2016' )] = new Date( '08/18/2016' );

    // datepicker
    $('#datepicker').datepicker({
        beforeShowDay: function( date ) {
            var highlight = eventDates[date];
            if( highlight ) {
                return [true, "event", 'Tooltip text'];
            } else {
                return [true, '', ''];
            }
        }
    });
});

上面的 JavaScript 将在选定的日期添加

event
类。现在您需要定义所选日期的样式。如需完整指南,您可以查看上面提到的源链接。


0
投票

尝试使用此方法突出显示日期选择器中的日期

$( '#datepicker' ).datepicker( 'setDates', ['02-22-2024','02-23-2024','02-24-2024'] );

© www.soinside.com 2019 - 2024. All rights reserved.