[英]How to get xpages modal to fire a close event
我有一个xpage(通过Web浏览器查看),上面有许多<xe:dialog...>
控件,导致出现了引导模式对话框。
当任何对话框关闭时,我想运行一些客户端脚本。
所以我尝试了..
$('.modal').on('hide.bs.modal', function() { ...}
但这是行不通的,我怀疑是因为在加载xpage时,实际上没有任何具有“模态”类的元素,直到打开一个元素为止。 然后部分刷新将注入相关的HTML。
因此,我尝试在模式打开时(在xpages onShow事件中)在事件的上方运行该行,但是也没有触发。 我猜事件可能是“模式打开时但在显示之前”,这意味着元素也不会在屏幕上显示。
因此,我还尝试了(hack,hack)2秒的setTimeout,以允许模式首先显示,但仍然没有运气。
所以..问题是..
通过标准的xe:dialog控件,使用xpages引导程序模态,如何在模态关闭/隐藏时附加将运行的客户端javascript事件?
您可以使用事件委托将侦听器绑定到(不存在)模态的父元素,并在与该父元素中与.modal
选择器匹配的元素上单击时触发函数。
$(document).on("hide.bs.modal", ".modal", function () {...});
我做类似的事情,在一个模式上选择一个按钮,关闭所说的模式,然后根据被点击的按钮,打开下一个模式。 除了这样做,您是否可以用相同的方式运行脚本?
var
currentModal = $(this);
//click next
currentModal.find('.btn-close').click(function(){
currentModal.modal('hide');
OTHER STUFF?
编辑-我的完整代码:
<script type="text/javascript">
$("div[id^='myModal1']").each(function(){
var
currentModal = $(this);
//click next
currentModal.find('.btn-next').click(function(){
currentModal.modal('hide');
currentModal.closest("div[id^='myModal']").nextAll("div[id^='myModal3']").first().modal('show');
});
//click prev
currentModal.find('.btn-prev').click(function(){
currentModal.modal('hide');
currentModal.closest("div[id^='myModal']").nextAll("div[id^='myModal2']").first().modal('show');
});
});
$(window).on('load',function(){
$('#myModal1').modal('show');
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.