好吧,所以所有模态在右上角都有一个图像来关闭它们。我怎样才能再做另一个锚来做同样的事情?我以为我可以使用默认为“simplemodal-close”的“closeClass”选项,只是将该类添加到锚点,但它没有达到预期的效果。那是我应该做的吗?此外,所有模态将有一个“联系我们”链接,应该关闭它自己的模态并打开联系模式。我怎么能等到它关闭才能打开下一个呢?
想法?
$('a#ask').click(function(){
$.modal.close(function(){
});
$('#modal-contact').modal();
});
答案 0 :(得分:3)
1)如果将simplemodal-close
分配给对话框内容中的元素,SimpleModal会自动将close函数绑定到该元素的click事件。
2)通过交换内容或首先使用$ .modal.close()关闭对话框,有很多方法可以做到这一点。然后开一个新的。
<强>更新强>
$('a#ask').click(function(){
$('#modal-contact').modal({onShow: function (dialog) {
// handle the close yourself.
// Don't use the closeClass on this element
// call $.modal.close(); when you are done
// call a function to open a new modal
});
return false;
});
答案 1 :(得分:2)
当前onClose事件的作用类似于onBeforeClose,并且没有为$ .modal.close()设计onAfterClose。 唯一的解决方法是等待:
。$ modal.close(); window.setTimeout(showSecondModal,500);
答案 2 :(得分:1)
要回答第二个问题 - 如何关闭现有模态并随后打开新模式 - 您需要做三件事:
因此,当您使用 $ .modal.close()关闭模式时, onClose 将会运行,从而触发动画并关闭模态。由于持久存在,因此将保留以下功能。你的功能会激活,你的第二个模态会打开。
$("#first_modal").modal({
containerId: 'modal_id',
persist: true,
onClose: function (dialog) {
dialog.container.fadeOut(100, function () {
dialog.overlay.fadeOut(200, function(){
$.modal.close();
showSecondModal();
});
});
} });
答案 3 :(得分:1)
升级到最新版本的SimpleModal,目前为1.4.4。根据{{3}}:
,超时问题已在1.4.2中修复删除导致问题的close()的Opera解决方法
上面的代码经过轻微修改后应该按预期工作:
$('a#ask').click(function(){
$.modal.close();
$('#modal-contact').modal();
});