嵌套的jQuery onClick事件处理程序多次触发

时间:2015-03-11 19:49:39

标签: jquery twitter-bootstrap modal-dialog nested propagation

使用bootstrap模式,我想为这个模态中的模态和后面的提交按钮注册一个事件处理程序。

调用模态和关闭ist会导致多次执行#modalSubmitButton事件。你能想到任何防止这种行为的解决方案,只会触发实际事件,忽略以前对模态的调用吗?我处理嵌套程序的方法可能是错的吗?

我已经尝试了event.stopPropagation / event.unbind()等的所有组合

$(document).on('click', '#myModalID' function () {

    // i fetch some data from the clicked element here
    //  and make it accessible to the subsequent eventHandler

        $(document).on('click', '#modalSubmitButton' function () {

            // eventually calling service on click of button
            invokeService()
    });
});

1 个答案:

答案 0 :(得分:1)

简单修复:不嵌套事件处理程序。通过委派事件处理程序(您已经使用)的实现,不需要。

$(document).on('click', '#myModalID' function () {
    // i fetch some data from the clicked element here
    //  and make it accessible to the subsequent eventHandler
});

$(document).on('click', '#modalSubmitButton' function () {
    // eventually calling service on click of button
    invokeService()
});