在jQuery UI datepicker中标记选定日期

时间:2010-10-23 00:45:33

标签: javascript jquery css jquery-ui

我正在使用jQuery UI的datepicker(http://docs.jquery.com/UI/Datepicker)。

听起来应该可以通过提供beforeShowDay函数(http://docs.jquery.com/UI/Datepicker#event-beforeShowDay)来标记某些日子。但我无法为此获得CSS。我想让背景变绿了几天。

这是我迄今为止的JavaScript:

$(function() {    
    $('.date').datepicker({
        dateFormat: 'yy-mm-dd',
        firstDay: '1',
        showOtherMonths: 'true',
        beforeShowDay: daysToMark
    });
});

function daysToMark(date) {
    if (date.getDate() < 15) {
        return [true, 'markedDay', ""];
    }

    return [true, '', ""];
}

这就是css:

.markedDay {
    background-color: green;
}

但没有任何改变。我做错了什么?

2 个答案:

答案 0 :(得分:4)

这样做了

.markedDay a.ui-state-default {
    background: green !important;
}

.markedDay a.ui-state-hover {
    background: red !important;
}

如同Nick Craver所指出的那样,不得不将样式添加到元素而不是td元素。我还必须将jQuery UI生成的类名添加到a元素中,以使我的css规则比CSS cascading rules的默认值更重要。最后一招是使用background而不是background-color来覆盖使用的jQuery UI主题图像。

答案 1 :(得分:3)

你应该做些什么,you can test it here。但是,根据您的主题,您可能需要调整CSS,因为<a>中的<td>具有自己的背景,并且该类会应用于<td>。< / p>