1

我正在编写一个 JavaScript 函数来在提交位于花式框中的表单时关闭花式框。这里是:

function closeFancyBox() {
    $.fancybox.close();
    $('#calendar').fullCalendar('refetchEvents');
}

它是在fancybox中以这种方式触发的:

$('form').submit(function() {
    parent.closeFancyBox();    
});

事情是这样的:fancybox 正确关闭,但 fullcalendar 没有刷新显示。但是,当我closeFancyBox();从控制台调用时,它可以工作并且 fullCalendar 会刷新。我被难住了。

编辑:

根据 danronmoon 的建议,我在$.fancybox.close();调用后添加了一个断点并检查了$('#calendar')返回的内容......它返回了一个 div 元素,正如预期的那样。

4

2 回答 2

0

您正在提交表单,很明显它将重定向到另一个页面,因此除非您停止重定向,否则您将看不到所有代码的工作。

$('form').submit(function(e) {
    parent.closeFancyBox();
    // run either of the following.
    e.preventDefault();
    return false;
});
于 2012-12-09T00:59:17.460 回答
0

我仍然不确定是什么原因造成的,但我确实设法通过将 fullCalendar 的调用移动refetchEvents到 fancyboxafterClose钩子来“修复”它。

简而言之,这解决了症状,但我不知道是什么导致了潜在问题。

于 2012-12-09T18:57:43.760 回答