Dojo - Как программно создать диалог всплывающих подсказок при щелчке по ссылке

Как сказано в заголовке. Я хочу создать TooltipDialog после того, как я нажму ссылку и загружу пользовательский контент в этот диалог. Тело всплывающей подсказки является полным заполнителем, я просто не использовал серверную логику, чтобы справиться с этим. Итак, я дошел до этого момента:

            PreviewThread: function (ThreadID) {

            var tooltip = new dijit.TooltipDialog({
                href: "/Account/SingIn?ReturnUrl=" + Jaxi.CurrentLocation
            });
        },

<a href="javascript:Jaxi.PreviewThread(@thread.ThreadID)" class="preview-thread" id="@tp.ToString()">Preview</a>

Дело даже не в том, как загрузить контент в диалог, а в том, как его в первую очередь открыть?

После дополнительных поисков в Google и проб и ошибок я наконец дошел до этого:

            PreviewThread: function (ThreadID) {

            var tooltip = new dijit.TooltipDialog({
                href: "/Account/SingIn?ReturnUrl=" + Jaxi.CurrentLocation,
                closable: true
            });
            dojo.query(".thread-preview").connect("onclick", function () {
                dijit.popup.open({ popup: tooltip, around: this });
            });            
        },

Как-то работает. ToolTipDialog открывается, но ... Мне нужно дважды щелкнуть, и я не могу закрыть диалоговое окно после щелчка за его пределами или после нажатия кнопки мыши.

Хорошо, это будет похоже на журнал разработчика, но, надеюсь, это спасет других :

Наконец-то мне удалось открыть его там, где я хочу:

            PreviewThread: function (ThreadID) {

            var tooltip = new dijit.TooltipDialog({
                href: "/Account/SingIn?ReturnUrl=" + Jaxi.CurrentLocation,
                closable: true
            });

            dijit.popup.open({ popup: tooltip, around: dojo.byId("thread-preview-" + ThreadID) });
        },
<a href="javascript:Jaxi.PreviewThread(@thread.ThreadID)" id="@tp.ToString()" >Click Me</a>

Обратите внимание, что я использую Asp .NET MVC. Осталось закрыть чертову штуку удобным для пользователя способом ..

5
задан Łukasz Baran 8 July 2011 в 19:38
поделиться