Диалог jQuery откроется только один раз - PullRequest
1 голос
/ 17 ноября 2010

сначала мой английский не очень хороший.sory.

Моя проблема в том, когда загрузка страницы завершена.я использую функцию клика первый клик, работающий успешно.но второй щелчок не работает.но я обновляю страницу: первый клик работает, второй не работает.когда я обновляю код страницы работает один раз.(примечание: я новичок в jquery)

$(document).ready(function () {
    $('#silmesaji').hide();
    $(".delbutton").click(function () {
        var element = $(this);
        var silinecek_idi = element.attr("id");
        var info = 'id=' + silinecek_idi;
        $("#silmesaji").dialog({
            modal: true,
            title: 'Kategoriyi Silin!',
            resizable: false,
            'buttons': {
                "Sil": function () {
                    $.ajax({
                        type: "GET",
                        url: "forms/joker.asp",
                        data: info,
                        success: function () { }
                    });
                    $("#silmesaji").dialog("close");
                    element.parents(".siralagayri").animate({
                        backgroundColor: "#f31e1f"
                    }, "fast").animate({
                        opacity: "hide"
                    }, "slow"); 
                },
                "iptal": function () {
                    $("#silmesaji").dialog("close");
                }
            }
        });
    });

Спасибо за ответ.

но я хочу: когда нажимаю кнопку ОК.отправил сообщение и закрыл диалог.это не может работать: (

$(".delbutton").click(function () {
    var element = $(this);
    var silinecek_idi = element.attr("id");
    var info = 'id=' + silinecek_idi;
    $("#silmesaji").dialog('open');
});


$("#silmesaji").dialog({
    autoOpen: false,
    modal: true,
    buttons: {
        "Ok": function() { 
            $.ajax({
                type: "GET",
                url: "forms/joker.asp",
                data: info,
                success: function(){ 
                    element.parents(".siralagayri")
                        .animate({ 
                            backgroundColor: "#f31e1f" 
                        }, "fast")
                        .animate({ 
                            opacity: "hide" 
                        }, "slow");
                    $("#silmesaji").dialog("close"); return false();
                }
            }); 
        }, 
        "Cancel": function() { 
            $(this).dialog("close"); 
        } 
    }
}); 

1 Ответ

1 голос
/ 17 ноября 2010

При вызове $("#silmesaji").dialog(...) по умолчанию для опции "autoOpen" установлено true, поэтому вы создаете и показываете диалоговое окно.

Но после его закрытия вызывается$("#silmesaji").dialog(...), не будет заново создавать диалоговое окно, поэтому оно также не будет "autoOpen".

Вам необходимо вызвать $("#silmesaji").dialog('open'), чтобы заново открыть / показать диалоговое окно.

Я всегда делаю это так:

  • В функции ready я создаю диалог с autoOpen: false.(Примечание: не в событии щелчка)
  • В событии щелчка я звоню $("#silmesaji").dialog('open');

Я попытаюсь изменить ваш код:

$(document).ready(function () {
    $('#silmesaji').hide();
    $(".delbutton").click(function () {
        var element = $(this);
        var silinecek_idi = element.attr("id");
        var info = 'id=' + silinecek_idi;
        $("#silmesaji").dialog('open');
    });

    $("#silmesaji").dialog({
        autoOpen: false;
        modal: true,
        /* Your code */
    });


});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...