【发布时间】:2015-07-25 10:51:36
【问题描述】:
我正在使用 jQuery 和一个名为 jQuery.Modal 的模态库。我有一个自定义功能来显示此模式以适应 UI 设计:
show: function (option) {
var view = new Modal.View();
sdhapp.modalRegion.show(view);
$(".sdh-ui.modal-header").html(option.title);
$(".sdh-ui.modal-body").empty();
if (option.image) {
if (option.image === 'error') {
$(".sdh-ui.modal-body").append(
'<div class="image-box" style="background-image: url(images/error-icon.png)"></div>');
}
}
if (option.confirmButton === true) {
$(".sdh-ui.modal-footer").html(
'<button type="button" id="modal-confirm-button">Confirm</button><button type="button" id="modal-cancel-button">Cancel</button>');
}
$(".sdh-ui.modal-body").append(option.body);
$('#error-modal-form').modal({
showClose: false
});
bindModalEvents(option);
}
其中 view 是呈现模态体的 Marionette 视图。
我正在绑定点击事件:
$('#modal-cancel-button').on('click', function () {
unbindModalEvents();
$.modal.close();
if (option.cancel)
option.cancel.call();
});
$('#modal-confirm-button').on('click', function () {
unbindModalEvents();
$.modal.close();
if (option.confirm)
option.confirm.call();
});
$('#modal-ok-button').on('click', function () {
unbindModalEvents();
$.modal.close();
if (option.ok)
option.ok.call();
});
并解除绑定: var unbindModalEvents = 函数(){ console.log('调用'); $('#modal-cancel-button').unbind('click'); $('#modal-confirm-button').unbind('click'); $('#modal-ok-button').unbind('click'); };
问题是点击事件(关闭函数)只触发一次。如果我第二次显示模态,则不会触发点击事件
我尝试删除元素,使用“bind”而不是“on”,但没有任何效果
有什么建议吗?
【问题讨论】:
标签: javascript jquery