Javascript 我可以让jQueryUIDatePicker元素在单击日期时不重置吗?

Javascript 我可以让jQueryUIDatePicker元素在单击日期时不重置吗?,javascript,jquery-ui,jquery-ui-datepicker,Javascript,Jquery Ui,Jquery Ui Datepicker,默认情况下,jQueryUIDatePicker会在选择日期时重置日历HTML。我希望能够更改/添加日历元素(添加图像、背景等),并在单击日期后保留这些元素 <script> $(function(){ $('#cal').datepicker({ onSelect: function(dateText, inst) { console.log(dateText); // dont do anything el

默认情况下,jQueryUIDatePicker会在选择日期时重置日历HTML。我希望能够更改/添加日历元素(添加图像、背景等),并在单击日期后保留这些元素

<script>

$(function(){
    $('#cal').datepicker({
        onSelect: function(dateText, inst) {
            console.log(dateText);
            // dont do anything else
        }
    });
    $('.ui-state-default:contains(24)').css('background-color','blue');
});

</script>   

<div id='cal'></div>
例如,此脚本以内联日期选择器开始,背景为第24个蓝色。当你点击另一个日期(比如15号)时,HTML重置,蓝色背景消失。我希望它在点击日期后保持蓝色

<script>

$(function(){
    $('#cal').datepicker({
        onSelect: function(dateText, inst) {
            console.log(dateText);
            // dont do anything else
        }
    });
    $('.ui-state-default:contains(24)').css('background-color','blue');
});

</script>   

<div id='cal'></div>

$(函数(){
$('#cal')。日期选择器({
onSelect:函数(日期文本,inst){
console.log(dateText);
//别做别的事
}
});
$('.ui状态默认值:包含(24)'.css('background-color','blue');
});
演示:

看看当你点击一天时,第24天是如何从蓝色变成白色的。。我希望它保持蓝色

注意:这只是一个演示问题的示例,而不是我的实际代码


在修改jQuery UI小部件代码之前,我想看看是否有一个简单的解决方案。

您不能移动
$('.UI状态默认值:contains(24)')。css('background-color','blue')在选择的
回调中?你仍然需要这样做,以确保新选择的24的也得到蓝色,我相信

另外,我想我应该添加类,并保留CSS中的实际样式

$(function(){
    $('#cal').datepicker({
        onSelect: function(dateText, inst) {
            console.log(dateText);
            $('.ui-state-default:contains(24)').css('background-color','blue');
            // dont do anything else
        }
    });
});
编辑:我认为您还需要在每个
onSelect
上重置所有.ui状态默认元素,这样,如果用户首先选择“24”,它会变为蓝色,但随后选择“17”,我相信它仍然是蓝色的,因此:

$(function(){
    $('#cal').datepicker({
        onSelect: function(dateText, inst) {
            console.log(dateText);
            $('.ui-state-default').css('background-color','transparent');
            $('.ui-state-default:contains(24)').css('background-color','blue');
            // dont do anything else
        }
    });
});

我已经决定,如果不修改UI日期选择器代码,这是不可能的,这就是我最终要做的-

在_selectDate方法中,我更改了行:

if (inst.inline)
    this._updateDatepicker(inst);

然后在_updateDatepicker方法中,我改变了

inst.dpDiv.empty().append(this._generateHTML(inst));


现在,当选择日期时,UI将不会重置日历HTML。

嘿,谢谢,不过我正在寻找一种使日历完全不重置的方法。我的实现比这个例子要复杂得多,在每次点击时用所有更改重新填充日历会非常复杂。你的目标是什么,是否允许在日历打开和关闭之间保留多个日期选择?我的目标是添加/修改日历的HTML,并在单击日期后保留所做的更改。例如更改背景颜色、添加图像、更改边框等。因此,没有打开/关闭。日历是内联的(请参见演示/代码)
if (!inst.stay) {
    inst.dpDiv.empty().append(this._generateHTML(inst));
}