我有一个按钮,点击后会弹出一个 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")。
问题是当我点击一个按钮时,模态弹出,但是当我点击另一个按钮时,当这个模态打开时,新的模态出现然后立即隐藏。如果我再次单击该按钮,模态框就会出现,然后立即隐藏。
谁能帮我解释为什么会这样?