Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery DatePicker在选择特定日期时更改高亮显示的颜色_Javascript_Jquery Ui_Datepicker - Fatal编程技术网

Javascript Jquery DatePicker在选择特定日期时更改高亮显示的颜色

Javascript Jquery DatePicker在选择特定日期时更改高亮显示的颜色,javascript,jquery-ui,datepicker,Javascript,Jquery Ui,Datepicker,我有我正在处理的Jquery datepicker代码。 我想做的是,当我点击任何其他日期时,将当前高亮显示日期的颜色更改为灰色,并将点击日期的颜色更改为绿色 棘手的是,只有灰色的日期可以变成绿色,反之亦然,但没有其他日期可以在点击时变成绿色 我不明白我做错了什么。还是我的代码完全错了。 如果有人能帮忙的话 这是密码 $(function() { var togo=['10/25/2013'] var datesArray=['10/27/2013','10/28/2013'

我有我正在处理的Jquery datepicker代码。 我想做的是,当我点击任何其他日期时,将当前高亮显示日期的颜色更改为灰色,并将点击日期的颜色更改为绿色

棘手的是,只有灰色的日期可以变成绿色,反之亦然,但没有其他日期可以在点击时变成绿色

我不明白我做错了什么。还是我的代码完全错了。 如果有人能帮忙的话

这是密码

$(function() {
     var togo=['10/25/2013']
     var datesArray=['10/27/2013','10/28/2013']
     var datesArray1=['10/25/2013','10/26/2013']
     var datesArray2=['10/24/2013']


        $( "#datepicker" ).datepicker({
            numberOfMonths: 2,

            selectMultiple:true,
            beforeShowDay: function (date) {
                var theday = (date.getMonth()+1) +'/'+ 
                            date.getDate()+ '/' + 
                            date.getFullYear();
                    return [true,$.inArray(theday, datesArray2) >=0?"specialDate":($.inArray(theday, datesArray)>=0?"specialDate2":($.inArray(theday, datesArray1)>=0?"specialDate1":''))];
                },

            onSelect: function(date){

             console.log("clicked"+date);  
            return [true,$.inArray(date, togo) >=0?"specialDate":($.inArray(date, datesArray1)>=0?"specialDate1":'')] ;  

            }

        });
        //$.inArray(theday, datesArray) >=0?"specialDate":'specialDate1'
    });
为了更清楚地了解我在做什么和我想要什么,这里有一个JSFiddle


谢谢。

onSelect
的行为与ShowDay之前的
不同。不能返回带有
[真/假,类,弹出窗口]
的数组。相反,您必须在函数中手动应用该类

我不确定你到底想做什么,但我会重新整理一下你的代码。我用灰色日期做了一个数组,然后用绿色日期做了一个变量。我从不更改数组,而是在单击时更新绿色日期,然后在
日期选择器上调用
刷新

$(function () {
    var togo = [ '10/25/2013' ];
    var redDates = [ '10/27/2013', '10/28/2013' ];
    var grayDates = [ '10/24/2013', '10/25/2013', '10/26/2013' ];
    var greenDate = '10/24/2013';


    $("#datepicker").datepicker({
        numberOfMonths: 2,

        selectMultiple: true,
        beforeShowDay: function (date) {
            var theday = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
            return [true, greenDate == theday ? "specialDate" : ($.inArray(theday, redDates) >= 0 ? "specialDate2" : ($.inArray(theday, grayDates) >= 0 ? "specialDate1" : ""))];
        },

        onSelect: function (dateStr) {
            var date = new Date(dateStr);
            var theday = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();

            if ($.inArray(theday, grayDates) >= 0) {
                greenDate = theday;
            }
            $('#datepicker').datepicker("refresh");
        }

    });
});
我不确定多哥的目的是什么,但这应该让你开始


演示:

哪种灰色,浅灰色还是深灰色?深灰色,而不是浅灰色,这只是jquery ui主题。当我单击深灰色日期时,它们应该变为绿色,即在示例25或26和24中,它们应该再次变为深灰色。是的,你在这方面是正确的,我尝试了一个.addClass(“.ui datepicker current day”)到绿色,但它不会覆盖..你好,杰夫,你做的小提琴有问题。当您将数据更改为灰色时(假设为2013年1月10日至2013年4月10日),并尝试将其变为绿色,则无法工作。这是javascript的日期格式的问题。正在尝试解决它。这是您将看到问题的地方。使用这把小提琴它可以处理所有情况。@user2415379有一个比这更简单的解决方案。与其自己解析日期,不如让javascript为您解析:
date=newdate(date)
,然后使用
theday
计算,如
beforeShowDay
。演示: