як аднавіць мадальнай дыялогавае акно ў JQuery пасля яго закрыцця?

У мяне ёсць дадатак Asp.Net MVC, дзе ў 1 View, у мяне ёсць спіс з кожнай запісам, паказваючы рэдагавання значка. Пры націску на значок рэдагавання адкрываецца мадальнай дыялогавае ўсплывальнае акно для абнаўлення запісу.

Я сутыкаюся праблемай у паўторным адкрыцці дыялогавага акна або націснуўшы іншую абразок для рэдагавання ўсплывае акна пасля закрыцця дыялогавага акна.         Ніжэй мой jQuery код, каб адкрыць дыялогавае акно:

var singltym;

$(function() {

    $('#addSingleTimeDialog').dialog({
            cache: false,
            autoOpen: false,
            width: 450,
            height: 450,
            closeOnEscape: true,
            resizable: true,
            modal: true});

    $('#singletymlink').on('click', function() {
            singltym = $(this);
            var dialogDiv = $('#addSingleTimeDialog');
            var viewUrl = singltym.attr('href');
            $.ajax({
                cache: false,
                url: viewUrl,
                dataType: 'html',
                success: function (data) {
                    dialogDiv.html(data);
                    dialogDiv.dialog('open');
                }
            });
            return false;
        });
});
3
Калі ласка, ваш поўны код (<div>) у гэтым пытанні, таму што я знайшоў для вас вырашэння праблемы.
дададзена аўтар Mirko Cianfarani, крыніца

6 адказы

    var singltym;

    $(function() {

        $('#addSingleTimeDialog').dialog({
                cache: false,
                autoOpen: false,
                width: 450,
                height: 450,
                closeOnEscape: true,
                resizable: true,
                modal: true});

        $('#singletymlink').on('click', function() {
                singltym = $(this);
                var dialogDiv = $('#addSingleTimeDialog');
                var viewUrl = singltym.attr('href');
                $.ajax({
                    cache: false,
                    url: viewUrl,
                    dataType: 'html',
                    success: function (data) {
                        dialogDiv.html(data);
                       dialogDiv.dialog('open');

// Я працую ў гэтым метадзе

                  $( this ).dialog( "close" );

                }
            });
        });
});

або

$.ajax({
                    cache: false,
                    url: viewUrl,
                    dataType: 'html',
                    success: function (data) {
                        dialogDiv.html(data);
                       $("#dialogDiv").dialog("open");

                  $( this ).dialog( "close" );

                }

Калі $ (гэта) .dialog ( «закрыць»); не працуе, таму што не паспрабаваць гэта пэўная прапанова ??

$('#addSingleTimeDialog').dialog("close");
6
дададзена
$ (Гэта) .dialog ( "закрыць"); Працуе выдатна. (У)
дададзена аўтар JayKandari, крыніца
Я нават спрабаваў перахопліваць скрыпт з $ (гэта) .dialog ( «закрытая»); , але без поспеху.
дададзена аўтар Shalin Jirawla, крыніца
я нават спрабаваў $ ( '# addSingleTimeDialog') дыялог ( "закрыць") ;. , але без поспеху
дададзена аўтар Shalin Jirawla, крыніца
дзякуй @Mirko за вашу дапамогу ў вырашэнні гэтага пытання
дададзена аўтар Shalin Jirawla, крыніца
і '$ (' # addSingleTimeDialog ') дыялог ( "закрыць"); ". Вы спрабавалі ?? @ShalinJirawla
дададзена аўтар Mirko Cianfarani, крыніца
Скапіюйце код і ўстаўце на jsfiddle.net , таму што міс код у HTML (справы)
дададзена аўтар Mirko Cianfarani, крыніца
Паглядзіце на гэты адказ stackoverflow.com/a/8887789/1461682
дададзена аўтар Mirko Cianfarani, крыніца

The above issue can be solved by including the below scripts in parent view from where the dialog popup is clicked & initiated :

<script type="text/javascript" src="../../Scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.unobtrusive.min.js"></script>

Як ўставіць ніжэй сцэнары ва ўяўленні дзіцяці, які з'яўляецца інтэрфейсам для дыялогавым ўсплывае акна:

<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.unobtrusive.min.js"></script>

By scripting in such way, the jQuery script conflict is avoided & reopening of dialog can be swiftly done.

3
дададзена

Вы можаце выкарыстоўваць адкрыйце метад:

$('#addSingleTimeDialog').dialog('open');
1
дададзена
Я ведаю, што магу, але я павінен загрузіць дыялог з дынамічнымі дадзенымі, які зыходзіць ад боку сервера дзеянні кантролера, для якога мне трэба, каб пабудаваць дыялог з URL і перадаць дадзеныя ў фармаце HTML для дыялогавага інтэрфейсу
дададзена аўтар Shalin Jirawla, крыніца
Дзіўна тое, што той жа самы сцэнар, я выкарыстоўваю ў іншых кропках гледжання, і гэта працуе выдатна. Я прааналізаваў і выявіў, што яна не абнаўляецца дыялог. Я зрабіў наступнае, каб прымусова абнавіць яго. . <�Код> $ ( '# updateMstrTaskDialog') дыялог ({кэш: хлусня, AutoOpen: хлусня, шырыня: 300, вышыня: 230, змяняецца: праўда, мадальнай: праўда, блізка: функцыя() {location.reload (); }}); Гэта працуе, але з непажаданай зваротнай перадачы.
дададзена аўтар Shalin Jirawla, крыніца

Паспрабуйце пісаць $ (гэта) .dialog ( "закрыць"); метад у непасрэднай функцыі. напрыклад:

close: function(){ $( this ).dialog( "close" ); },

$( this ).dialog( "close" ); does not destroy the dialog, instead it just closes and makes it available to be used for next time.

0
дададзена

Мая праблема была вырашана шляхам замены

$(this).dialog("close");

з

$(this).dialog("destroy");
0
дададзена

Наткнуўся гэтага старэйшы пытання, знайшоў простае рашэнне, ці не пералічанае тут.

Дадаць прослушиватель падзей для блізкага падзеі, і выклікаць руйнуюць дыялогавае акно закрываецца.

close: function(event, ui) {$(this).dialog("destroy");}
0
дададзена