Это может быть глупый вопрос, но вместо "visibility:hidden"
вы пробовали "display:none;"
? Мне пришлось решить ту же проблему для проекта, над которым я работаю, и я достаточно уверенно показываю: ни один не сработал.
Вы также можете использовать
$(foo).dialog({ autoOpen: false });
возможность "инициализировать" диалог (таким образом скрывая его и все такое хорошее). Единственная проблема в том, что вы, вероятно, увидите диалоговое окно «мерцание» при загрузке страницы, но до того, как jQuery сможет его скрыть.