单击具有模态弹出窗口的另一个按钮时,Bootstrap 模态闪烁

时间:2021-03-09 05:45:38

标签: javascript jquery twitter-bootstrap bootstrap-4 bootstrap-modal

我有一个按钮,点击后会弹出一个 Bootstrap 模式。 这是代码

function confirm_deactivation(row, user_id, status_field) {
    const modal_elem = $("#deactivation_user_modal").expectOne();

    function set_fields() {
        const user = people.get_by_user_id(user_id);
        modal_elem.find(".email").text(user.email);
        modal_elem.find(".user_name").text(user.full_name);
    }

    function handle_confirm() {
        const row = get_user_info_row(user_id);

        modal_elem.modal("hide");
        const row_deactivate_button = row.find("button.deactivate");
        row_deactivate_button.prop("disabled", true).text(i18n.t("Working…"));
        const opts = {
            success_continuation() {
                update_view_on_deactivate(row);
            },
            error_continuation() {
                row_deactivate_button.text(i18n.t("Deactivate"));
            },
        };
        const url = "/json/users/" + encodeURIComponent(user_id);
        settings_ui.do_settings_change(channel.del, url, {}, status_field, opts);
    }

    modal_elem.off("click", ".do_deactivate_button");
    set_fields();
    modal_elem.on("click", ".do_deactivate_button", handle_confirm);
    modal_elem.modal("show");
}

function handle_deactivation(tbody, status_field) {
    tbody.on("click", ".deactivate", (e) => {
        // This click event must not get propagated to parent container otherwise the modal
        // will not show up because of a call to `close_active_modal` in `settings.js`.
        e.preventDefault();
        e.stopPropagation();

        const row = $(e.target).closest(".user_row");
        const user_id = row.data("user-id");
        confirm_deactivation(row, user_id, status_field);
    });
}

我有一个此类按钮的列表(class="deactivate")。

问题是当我点击一个按钮时,模态弹出,但是当我点击另一个按钮时,当这个模态打开时,新的模态出现然后立即隐藏。如果我再次单击该按钮,模态框就会出现,然后立即隐藏。

谁能帮我解释为什么会这样?

0 个答案:

没有答案
相关问题