1

我在我的网站中使用 fullCalendar 和 Bootstrap,这样每次我在月视图中单击一天时,都会有一个弹出框来添加事件,就像在 Google 日历中一样。这是我的代码

$(document).ready(function() {

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    var calendar = $('#calendar').fullCalendar({
        height: height,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        dayClick: function( date, allDay, jsEvent, view ){
            $(this).children().popover({
        title: 'haha',
        placement: 'right',
        content: 'haha',html : true, container: 'body'
    });
    $(this).children().popover('show');
}
})

该代码应该是正确的,$(this).children().popover({以便它关闭所有以前触发的弹出窗口。

但是,确切地说,我应该使用什么代码来实现这一点?

谢谢!

4

1 回答 1

3

您可以通过保存引用来删除之前创建的popover或更具体destroy的那个(这将是一种更具体和更好的方法)。

var calendar = $('#calendar').fullCalendar({
    height: '300px',
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    dayClick: function (date, allDay, jsEvent, view) {
         $(this).children().popover({
            title: 'haha',
            placement: 'right',
            content: 'haha',
            html: true,
            container: 'body'
        });
        $('.popover.in').remove(); //<--- Remove the popover 
        $(this).children().popover('show');
    }
});

小提琴方法1

或者

  var $calPopOver; //create a variable to save refe
    var calendar = $('#calendar').fullCalendar({
        height: '300px',
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        dayClick: function (date, allDay, jsEvent, view) {
             $(this).children().popover({
                title: 'haha',
                placement: 'right',
                content: 'haha',
                html: true,
                container: 'body'
            });
            if($calPopOver) //if there is something
                $calPopOver.popover('destroy'); //then call popover destroy
            $calPopOver = $(this).children().popover('show');
        }
    });

小提琴方法2

于 2013-09-28T16:08:24.870 回答