首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

fullcalendar日历控件怎么点击某一天后改变点击那一天的CSS样式

2014-01-03 
fullcalendar日历控件如何点击某一天后改变点击那一天的CSS样式代码是这样的 headlink relstylesheet

fullcalendar日历控件如何点击某一天后改变点击那一天的CSS样式
代码是这样的 

<head>

<link rel='stylesheet' type='text/css' href='${base}/components/fullcalendar/fullcalendar.css' />
<link rel='stylesheet' type='text/css' href='${base}/components/fullcalendar/fullcalendar.print.css' media='print' />

<script type='text/javascript' src='${base}/js/jquery-ui-1.10.2.custom.min.js'></script>
<script type='text/javascript' src='${base}/components/fullcalendar/fullcalendar.min.js'></script>
<script type='text/javascript' src='${base}/components/fullcalendar/gcal.js'></script>
<script language="javascript">
  $(document).ready(function(){
    if ($('#calendar') != null) {
      var date = new Date();
      var d = date.getDate();
      var m = date.getMonth();
      var y = date.getFullYear();
      
      $('#calendar').fullCalendar({
        header: {
          left: 'prev,next today',
          center: 'title',
          right: 'month,basicWeek,basicDay'
        },
        dayClick: function(date, allDay, jsEvent, view) {
          $(this).css('background-color', 'red');
          var clickDate = view.calendar.formatDate(date,'yyyyMMdd');
          window.location="${base}/admin/manager/holiday/save.action?holiday.date="+clickDate;
          
        },
        eventClick: function(calEvent, jsEvent, view) {
          window.location="${base}/admin/manager/holiday/load.action?event.id="+calEvent.id;
        },
        
        firstDay: 1,
        monthNames: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
        monthNamesShort: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
        dayNames: ['周日','周一','周二','周三','周日','周五','周六'],
        dayNamesShort: ['日','一','二','三','四','五','六'],
        buttonText: {
          prev: '&nbsp;&#9668;&nbsp;',
          next: '&nbsp;&#9658;&nbsp;',
          prevYear: '&nbsp;&lt;&lt;&nbsp;',
          nextYear: '&nbsp;&gt;&gt;&nbsp;',
          today: '今天',
          month: '月',
          week: '周',
          day: '日'
        },
        viewDisplay: function (view) {//动态把数据查出,按照月份动态查询
                var viewStart = $.fullCalendar.formatDate(view.start, "yyyy-MM-dd HH:mm:ss");
                var viewEnd = $.fullCalendar.formatDate(view.end, "yyyy-MM-dd HH:mm:ss");
                $("#calendar").fullCalendar('removeEvents');
                $.post("../../sr/AccessDate.ashx", { start: viewStart, end: viewEnd }, function (data) {
            
                    var resultCollection = jQuery.parseJSON(data);
                    $.each(resultCollection, function (index, term) {
                        $("#calendar").fullCalendar('renderEvent', term, true);
                    });

                }); 


            },
        titleFormat: {
          month: 'yyyy年MMMM',
          week: "yyyy年MMMd{ '&#8212;' d}日",
          day: 'yyyy年MMMMd日 dddd'
        },
        columnFormat: {
          month: 'ddd',
          week: 'ddd M/d',
          day: 'dddd M/d'
        },
        timeFormat: { // for event elements
          '': 'HH:mm-' // default
        }
      });
    }
    if($.browser.msie){   
        $("#calendar .fc-header-left").append('<span><input type="text" id="selecteddate" size="8" maxLength="10" class="mcrm-input"><SPAN class=fc-header-space></SPAN><span id="selectdate" title="查询日期格式为:yyyy-mm-dd" class="fc-button fc-state-default fc-corner-left fc-corner-right"><span class=fc-button-inner><SPAN class=fc-button-content><@ww.text name="search"/></span></span></span></span>');
    }else{   
        $("#calendar .fc-header-left").append('<span><input type="text" id="selecteddate" size="8" maxLength="10" class="mcrm-input"><SPAN class=fc-header-space></SPAN><span id="selectdate" title="查询日期格式为:yyyy-mm-dd" class="fc-button fc-state-default fc-corner-left fc-corner-right"><span class=fc-button-inner><SPAN class=fc-button-content><@ww.text name="search"/></span></span></span></span>');
    }   
  
    $("#selectdate").click(function() {
        var selectdstr = $("#selecteddate").val();   
        var selectdate = $.fullCalendar.parseDate(selectdstr, "yyyy-mm-dd");   
        $('#calendar').fullCalendar( 'gotoDate', selectdate.getFullYear(), selectdate.getMonth(), selectdate.getDate());
    });   
    $("#selecteddate").datepicker({ changeMonth: true,
                                changeYear: true,
                                showButtonPanel: true,
                                dateFormat: 'yy-mm-dd',
                                showOtherMonths: true,
                                yearRange: '-10:+10',
                                duration: 'fast',
                                buttonImage: '${base}/images/default/date.png',
                                showOn: 'button',
                                buttonImageOnly: true,
                                buttonText: '选择时间'
                                });

  });
</script>
<style type='text/css'>
#calendar {
  width: 900px;
  margin: 0 auto;
}

</style>

</head>
        <div class="yui-b">


          <div class="yui-gb">
            <div id='calendar'></div>
          </div>
        </div>


在线求高手帮忙啊 !
[解决办法]
你这不是设置了,没有效果?
dayClick: function(date, allDay, jsEvent, view) {
          $(this).css('background-color', 'red');
          var clickDate = view.calendar.formatDate(date,'yyyyMMdd');
          window.location="${base}/admin/manager/holiday/save.action?holiday.date="+clickDate;
           
        },
保存可以考虑用异步
[解决办法]
那你需要加背景色的数据肯定是从数据库中取出来的吧?

我项目的需求也差不多。
我是在fullcalendar.js文件中的function updateCells(firstTime) {}方法里面添加一个异步请求数据然后填充日历。
注:  updateCells方法在每次变换(切换到上、下月)的时候会被调用。你可以试一下
[解决办法]
保存直接用ajax发送你的数据到数据库就好了,懒的话直接window.open你那个url地址也行


            dayClick: function (date, allDay, jsEvent, view) {
                $(this).css('background-color', 'red');
                var clickDate = view.calendar.formatDate(date, 'yyyyMMdd');
                $.post('${base}/admin/manager/holiday/save.action', {"holiday.date": clickDate;});
            },



设置节日,你可以viewDisplay事件中动态查询这个月的节日,然后对比日期获取td设置焦点就好,可以参考这个:fullCalendar设置日期td样式

热点排行