изменить фон ссылки в jQuery datepicker - PullRequest
0 голосов
/ 07 июля 2011

У меня есть скрипт. JQuery DatePicker с URL-адресами в базе данных.

<script>
    $(function() {
            $('#datepicker').datepicker({
                beforeShowDay: daysToMark,
                onSelect: function(date,evt){
                    if (evt.currentMonth < 10){
                        evt.currentMonth = "0"+evt.currentMonth;
                        }
                    if (evt.currentDay < 10){
                        evt.currentDay = "0"+evt.currentDay;
                        }
                        daysToMark(evt.currentYear+"-"+evt.currentMonth+"-"+evt.currentDay);
                        date.dpDiv.find('.ui-datepicker-current-day a')
                        .css('background-color', '#000000');
                        }
                });
        });

        <? 
        $dateArray = array();
        $sql = mysql_query("SELECT *
                            FROM module_news
                            "); 
                while ($row = mysql_fetch_array($sql)) {
                    array_push($dateArray,$row["tarigi"]);
                    }
        ?>
        var js_array = new Array();
        js_array = <?=json_encode($dateArray);?>;
        var dates = js_array;
        function daysToMark(evt) {
            if($.inArray(evt, js_array) != -1 )
            {

                window.open("index.php?action=news_archive&date="+evt+"&lang=<?=$lang?>", "_self");
            }
        return [true, "", ""];
        }
       </script>

У меня есть ссылки на даты базы данных в массиве, и я хочу выделить ссылки, поэтому, когда я пишу новости в 2011-07-08 в моем календаре, они будут связаны, но не выделены, как я могу изменить цвет фона связанных дат?

спасибо

Ответы [ 2 ]

1 голос
/ 07 июля 2011

В методе daysToMark вы возвращаете return [true, "", ""];, как того требует событие beforeShowDay.

Вторая позиция в этом массиве содержит класс, который будет применен к данным. Так что, если вы добавите класс return [true, "linked", ""]; и в вашем коде css установите правило

.linked .ui-state-default{
  background-color:red;
  background-image:none; /*this in case the them you use uses background images*/
}

это должно делать то, что вы хотите ..

демо на http://jsfiddle.net/gaby/S79fa/

0 голосов
/ 07 июля 2011

заменить эту строку

date.dpDiv.find('.ui-datepicker-current-day a')
                        .css('background-color', '#000000');

с кодом ниже

var atag = date.dpDiv.find('.ui-datepicker-current-day a');
atag.queue(function() {
   atag.css("background-color", "black");
});

это может быть полезно

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...