2012-12-09 101 views
1

我正在編寫一個JavaScript函數來關閉fancybox上提交的fancybox表單。那就是:Javascript函數沒有完成

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

它以這種方式的fancybox內觸發:

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

事情是這樣的:在的fancybox正在關閉正確,但fullcalendar不刷新顯示。當我從控制檯調用closeFancyBox();時,它工作並且fullCalendar刷新。我被困在這裏。

編輯:

每danronmoon的建議下,我加入了$.fancybox.close();調用後一個斷點,並檢查什麼$('#calendar')回來......它返回一個div元素,符合市場預期。

+0

你爲什麼要通過變量屬性調用函數? 'parent.closeFancyBox();'不應該'closeFancyBox();'? – a0viedo

+0

嘗試設置斷點並查看$(「#calendar」)返回的值 – danronmoon

+1

調用parent.closeFancyBox();因爲調用發生在位於該頁面上的iframe中 –

回答

0

您正在提交表單,很明顯它會重定向到另一個頁面,所以除非您停止發生重定向,否則您將看不到所有代碼的工作。

$('form').submit(function(e) { 
    parent.closeFancyBox(); 
    // run either of the following. 
    e.preventDefault(); 
    return false; 
}); 
+0

這似乎阻止表單提交(即將數據保存到數據庫)。 –

+0

是的,那麼您是否在提交表單之前嘗試顯示日曆?無論如何,它將消失。 – Ibu

+0

以下是它的工作原理:日曆提取事件並顯示。點擊日曆上的日期打開一個fancybox,裏面是一個iframe,它有一個窗體,它保存到事件數據庫。表單提交後,fancybox應該關閉,並且日曆應該刷新,只需通過當前表單添加事件。 –

0

我現在還不能確定是什麼原因導致這一點,但我沒有通過調用fullCalendar的refetchEvents移動到的fancybox afterClose鉤設法「修復」它。

總之,這固定了症狀,但我不知道是什麼導致了潛在的問題。