1

我需要一些帮助。我正在尝试建立 FullCalendar 和 FancyBox2 组合。当用户点击一天时,我有这样的功能:

dayClick: function(date, allDay, jsEvent, view) {
                var url = '/reservations/add';
                var data = url;
                var dayClickDate = $.fullCalendar.formatDate(date, 'dd/MM/yyyy');

                $.fancybox({
                    'hideOnContentClick': false, //option for v1.3.4 (outdated)
                    'type': 'iframe',
                    'href': data,
                    'width': 500,
                    'height': 100,
                    'transitionIn': 'none', //option for v1.3.4 (outdated)
                    'transitionOut': 'none', //option for v1.3.4 (outdated)

                    afterLoad: function() {
                        $("#resStartDate").val(dayClickDate);
                    },
                    afterClose: function() {
                        $('#calendar').fullCalendar('refetchEvents');
                    }
                });
            },

FancyBox 在 iframe 中打开一个页面,用户可以在其中进行新的预订。它应该将单击日期的日期设置为输入值。上面的代码不起作用。

有人知道我怎么能让这个工作吗?谢谢你。

4

1 回答 1

1

我想这取决于选择器的位置#resStartDate#calendar位置:在页面中还是在打开的页面中iframe

如果它们在打开的页面内(我假设它们是),那么你应该iframe在传递任何值之前先在里面找到它们,所以试试

afterLoad: function() {
   $('.fancybox-iframe').contents().find("#resStartDate").val(dayClickDate);
},
afterClose: function() {
   $('.fancybox-iframe').contents().find('#calendar').fullCalendar('refetchEvents');
}

注意:使用 iframe?始终考虑同源策略

于 2013-04-04T15:33:31.197 回答