jQuery对话框只会打开一次

时间:2010-11-17 14:47:14

标签: jquery dialog

首先我的英语不太好。索里。

我的问题是,当页面加载完成时。我使用点击功能第一次clik工作成功。但是secon点击不起作用。但我刷新页面第一次clik工作,第二次没有工作againg。当我刷新页面代码工作一次。 (注意:我是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 个答案:

答案 0 :(得分:1)

致电$("#silmesaji").dialog(...)时,"autoOpen"选项的默认设置为true,因此您需要创建&{显示对话框。

但是在关闭它之后,对$("#silmesaji").dialog(...)的调用不会重新创建对话框,所以它也不会“自动打开”。

您需要致电$("#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 */
    });


});