javascript - 如何在全日历中正确添加按钮?

标签 javascript jquery fullcalendar

我正在使用完整日历,并且有此功能:

calendar: function(datos,rut){

    var self = this;
    console.info(datos);
    $('#calendar').fullCalendar({

        height: 500,
        events: datos,
        editable: true,

            header: {
                left: '',
                center: 'prev title next',
                right: '',
            },

        eventClick:  function(event) {
            $('#modalTitle').html(event.title);
            $('#modalBody').html(event.description);
            $('#eventUrl').attr('href',event.url);
            $('#fullCalModal').modal();
        },

        eventRender: function (event, element) {

            element.find('.fc-title').append(" (<strong>"+ event.estado +"</strong>)");

            var estado = event.estado;
            var date = event.title;
            var formatoFecha = date.substring(0,10);
            $('.fc-day-number[data-date='+formatoFecha+']').html("<div class=text-center><button type='button' style='margin-right:5px; padding:0; border: none; background: none;' id ='editar_control_"+formatoFecha+"_id' class='btn btn-default addButton' title='Ver/Editar'><i class='fa fa-eye'></i></button></div>");
            self.actionBtnCalendar(formatoFecha,rut,datos);


        }

    })

    $('#calendar').fullCalendar('removeEvents');
    $('#calendar').fullCalendar('addEventSource', datos);         
    $('#calendar').fullCalendar('rerenderEvents');        
},

看起来像:

enter image description here

眼睛图标是一个按钮,这很好,但问题是我正在使用这个:

$('.fc-day-number[data-date='+formatoFecha+']').html("<div class=text-center><button type='button' style='margin-right:5px; padding:0; border: none; background: none;' id ='editar_control_"+formatoFecha+"_id' class='btn btn-default addButton' title='Ver/Editar'><i class='fa fa-eye'></i></button></div>";

使用html,所以天数消失,如果我使用append,看起来像这样:

enter image description here

每天的眼睛数量与事件数量相同。

所以我不知道如何在有事件的每一天正确放置按钮,但在外面,我需要与第一张图片相同但显示数字天数的按钮。

我感谢任何建议或帮助,对不起我的英语。

编辑

如果我使用dayRender:

eventRender: function (event, element) {

            element.find('.fc-title').append(" (<strong>"+ event.estado +"</strong>)");

            var estado = event.estado;
            var date = event.title;
            var formatoFecha = date.substring(0,10);
            //$('.fc-day-number[data-date='+formatoFecha+']').html("<div class=text-center><button type='button' style='margin-right:5px; padding:0; border: none; background: none;' id ='editar_control_"+formatoFecha+"_id' class='btn btn-default addButton' title='Ver/Editar'><i class='fa fa-eye'></i></button></div>");
            self.actionBtnCalendar(formatoFecha,rut,datos); 
        },

        dayRender: function (date, element) {
            $('.fc-day-number[data-date='+date+']').append("<div class=text-center><button type='button' style='margin-right:5px; padding:0; border: none; background: none;' id ='editar_control_"+date+"_id' class='btn btn-default addButton' title='Ver/Editar'><i class='fa fa-eye'></i></button></div>");
        }

什么也没发生

最佳答案

您获得所看到的结果是因为您使用了 eventRender Hook ,而不是每天显示一次按钮,您应该使用 dayRender Hook 。 请参阅here .

dayRender: function (date, element) {
        $('.fc-day-number[data-date='+date+']').append("<div class=text-center><button type='button' style='margin-right:5px; padding:0; border: none; background: none;' id ='editar_control_"+date+"_id' class='btn btn-default addButton' title='Ver/Editar'><i class='fa fa-eye'></i></button></div>");
    }

使用此钩子(Hook),您可以使用append,因为它每天只调用一次。

关于javascript - 如何在全日历中正确添加按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33477862/

相关文章:

javascript - ios PWA 如何在移动默认 safari 上打开外部链接(不在应用浏览器中)

javascript - jQuery CDN 安全/不安全加载问题

javascript - 将事件添加到事件日历中

javascript - 围绕其中心 Y 轴旋转立方体,第一次工作

jQuery 不更新 Rails 中的嵌套表单

FullCalendar 相邻事件与具有多行标题的事件奇怪地堆叠在一起

javascript - fullcalendar 根据屏幕宽度动态更改默认 View

javascript - 如何修复javascript keydown中的延迟

javascript - 读取 video.js 中视频元素/属性的正确方法是什么?

javascript - Windows 8/8.1 JQuery 上的 IE 11 is() 和 has() 不包含可滚动 div 的滚动条