jQuery UI对话框:clickoutside太早解雇了

时间:2013-11-13 17:45:00

标签: jquery jquery-ui-dialog

为什么点击外侧太早发射? 对话框打开然后被此事件关闭,因此用户甚至无法看到对话框

随附setTimeout(),它可以正常工作。

$(".haspopup").click(function () {
    var id = $(this).attr("data-dialogid");
    var dlg = $("#" + id);
    // reopen dialog
    if ($(this).data("hasDlg")) {
        dlg.dialog("open");
    }

    // init dialog
    else {
        // move caption to dialog's title
        var title = "search and filter";
        if (dlg.find(".title")) {
            title = dlg.find(".title").html();
            dlg.find(".title").remove();
        }

        // add dialog
        dlg.dialog({
            position: {
                my: "left top",
                at: "left top",
                of: $(this)
            },
            width: "auto",
            resizable: false,
            title: title
        });

        $(this).data("hasDlg", true);
        // close dialog after click
        dlg.find(".lt-sort,.lt-search").click(function () {
            dlg.dialog("close");
        });

        // close dialog after click outside
        setTimeout(function () {
            dlg.bind("clickoutside", function () {
                dlg.dialog("close");
            });
        }, 500);
    }
});

任何提示?

0 个答案:

没有答案