【问题标题】:Mark selected days in jQuery UI datepicker在 jQuery UI 日期选择器中标记选定的日期
【发布时间】:2011-04-29 10:47:57
【问题描述】:

我正在使用 jQuery UI 的日期选择器 (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;
}

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

【问题讨论】:

    标签: javascript jquery css jquery-ui


    【解决方案1】:

    做到了

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

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

    【讨论】:

      【解决方案2】:

      你所拥有的应该可以工作,you can test it here。但是,根据您的主题,您可能需要调整 CSS,因为 &lt;td&gt; 中的 &lt;a&gt; 有自己的背景,并且该类将应用于 &lt;td&gt;

      【讨论】:

      • 这是我需要帮助的 CSS 调整。将相同的样式表添加到“.markedDay a”不会改变任何内容。
      猜你喜欢
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多