Dialogs are treated the same way pages are. When appending a page/dialog dynamically into DOM, you dont need to call any kind of enhancement, as they get initialized, as well as all widgets within, prior to showing them.
All you need is to append dialog to <body>
or $.mobile.pageContainer
and then open the dialog using $.mobile.changePage()
.
$.mobile.pageContainer.append("dialog HTML markup");
$.mobile.changePage("#dialog_ID");
Note that calling enhancement methods on elements within a page that isn't created/initialized yet, will result an error. However, you can refresh widgets on visited/initialized pages.