Javascript 如何让xpages模式触发关闭事件

Javascript 如何让xpages模式触发关闭事件,javascript,jquery,twitter-bootstrap,xpages,bootstrap-modal,Javascript,Jquery,Twitter Bootstrap,Xpages,Bootstrap Modal,我有一个xpage(通过web浏览器查看),上面有许多控件,从而生成引导模式对话框 我想在关闭任何对话时运行一些客户端脚本 所以我试着 $('.modal').on('hide.bs.modal', function() { ...} 然而,我怀疑这不起作用,因为当xpage被加载时,实际上没有任何类为“modal”的元素,直到有一个元素被打开。然后部分刷新注入相关的HTML 因此,我尝试在模式打开时(在xpages onShow事件中)在事件中运行上面的那一行,但也没有触发。我猜事件可能是“

我有一个xpage(通过web浏览器查看),上面有许多
控件,从而生成引导模式对话框

我想在关闭任何对话时运行一些客户端脚本

所以我试着

$('.modal').on('hide.bs.modal', function() { ...}
然而,我怀疑这不起作用,因为当xpage被加载时,实际上没有任何类为“modal”的元素,直到有一个元素被打开。然后部分刷新注入相关的HTML

因此,我尝试在模式打开时(在xpages onShow事件中)在事件中运行上面的那一行,但也没有触发。我猜事件可能是“当模式打开但在显示之前”,这意味着元素也不会出现在屏幕上

因此,我也尝试了(hack,hack)设置2秒的超时,以允许模态首先显示,但仍然没有运气

所以。。问题是


使用xpages引导模式,通过标准的xe:dialog控件,如何附加一个客户端javascript事件,该事件在模式关闭/隐藏时将运行?

您可以使用事件委派将侦听器绑定到的父元素(不存在)modals,并在与父元素中的
.modal
选择器匹配的元素上单击时触发一个函数:

$(document).on("hide.bs.modal", ".modal", function () {...});

您可以使用事件委派将侦听器绑定到(不存在)modals的父元素,并在与该父元素中的
.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>       

$(“div[id^='myModal1'])。每个(函数(){
变量
currentModal=$(此);
//单击下一步
currentmodel.find('.btn next')。单击(函数(){
currentModal.modal('hide');
currentModal.closest(“div[id^='myModal']”)。nextAll(“div[id^='myModal3']”)。first().modal('show');
});
//单击上一页
currentmodel.find('.btn prev')。单击(函数(){
currentModal.modal('hide');
currentModal.closest(“div[id^='myModal']”)。nextAll(“div[id^='myModal2']”)。first().modal('show');
});
});
$(窗口).on('load',function(){
$('myModal1').modal('show');
});

我做了类似的事情,在一个模式上选择一个按钮,关闭所述模式,然后根据单击的按钮打开下一个模式。如果不这样做,您能否以相同的方式运行脚本

        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>       

$(“div[id^='myModal1'])。每个(函数(){
变量
currentModal=$(此);
//单击下一步
currentmodel.find('.btn next')。单击(函数(){
currentModal.modal('hide');
currentModal.closest(“div[id^='myModal']”)。nextAll(“div[id^='myModal3']”)。first().modal('show');
});
//单击上一页
currentmodel.find('.btn prev')。单击(函数(){
currentModal.modal('hide');
currentModal.closest(“div[id^='myModal']”)。nextAll(“div[id^='myModal2']”)。first().modal('show');
});
});
$(窗口).on('load',function(){
$('myModal1').modal('show');
});

谢谢-该代码是否存在于模态对话的开放事件中?我不确定currentModal=$(这个)在什么上下文中;我会编辑我的答案以包含我使用时的完整代码吗?这是页面底部的一个脚本块。谢谢。这些代码是否存在于模态对话的开放事件中?我不确定currentModal=$(这个)在什么上下文中;我已经编辑了我的答案,在我使用它时包含了我的完整代码-这是页面底部的一个脚本块啊哈,我想这是我想要的东西,我会尝试一下,谢谢。不幸的是,这不起作用。未触发任何事件。知道我可以尝试诊断什么问题吗?发现问题。。在有人点击链接打开对话框之前,根本没有提到类“modal”。调查还在继续…啊哈,我想这就是我想要的东西,我会试试的,谢谢。不幸的是,这没用。未触发任何事件。知道我可以尝试诊断什么问题吗?发现问题。。在有人点击链接打开对话框之前,根本没有提到类“modal”。调查仍在继续。。。