如何将样式表仅应用于我的jquery datepicker小部件?

时间:2012-04-23 17:33:21

标签: jquery jquery-ui

我的主页面由一个标签式小部件控制,我有一个专门为此设计的样式表。但是,我刚才意识到我的应用程序中也需要一个datepicker。我已将jquery-ui-style.cs样式表添加到我的项目中。问题是我只希望这个样式表影响我的datepicker而不是我的标签。

是否有办法在页面最初加载时或文本框关注时,仅将此样式表应用于我的日期选择器?

可能不需要,但这是我的jquery for datepicker:

$(function () {
    $("#txtViewWeeksData").datepicker({
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true
    });
});

1 个答案:

答案 0 :(得分:3)

可悲的是,没有“简单”的方法。

但我在这里做了一个例子:http://jsfiddle.net/ggwGs/9/

在下载页面(http://jqueryui.com/download)上,您可以在“主题”下选择“高级”。在哪里可以创建自定义“CSS范围”,输入和特殊主题名称,例如“.customTheme”并按下donnload。

如果您已创建自定义主题,则在“下载主题”下执行完全相同的操作。

现在我们需要在活动时将CSS范围类添加到Datepicker,并在不活动时删除。

所以我们这样做:

$("#txtViewWeeksData").datepicker({
    changeMonth: true,
    changeYear: true,
    showOtherMonths: true,
    selectOtherMonths: true,
    beforeShow: function(input, inst) {$(inst.dpDiv).addClass('customTheme');},
    onClose: function(dateText, inst) {$(inst.dpDiv).removeClass('customTheme');}
});

基本上我们在显示添加范围之前告诉它,在它关闭之后立即将其删除。