如何重新启动 Jquery 事件,以避免重复每个事件?

How to restart the Jquery events, to avoid the repetition of each one of them?

我有一个包含以下事件的索引页。

<div id="sub_page"></div>
$(document).ready(function () {

        $("a.menu_navegacion_abrircaja").on('click', function (ev) {
            ev.preventDefault();
            var href = “nombrecontrollerEJ/view_ej";
            $.post(href, function (data) {
                        $("#sub_page").html(data);
                    });
        });       

});

其中,当你点击时,加载divsub_page子页面的html内容。 在视图 view_ej 中,我带来了 html 代码以及 jquery 代码。添加到索引div的视图的Jquery代码如下:

$(document).ready(function () {

$('#modal_establecer_turnos').on('hidden.bs.modal', function () {
        alert("hello");
    });
});

通过单击包含 class "menu_navegacion_abrircaja" 的 link,我收到了警报 ("hello"); 但是发现有问题,每次点击link,都会重复提示信息(alert("hello");)。例如,我第一次单击包含 class menu_navegacion_abrircaja 的 link 时,它可以正常显示一次警报,但随后我再次单击相同的 link它向我显示了两次警报,然后我进行了第三次,他向我显示了三次警报,依此类推。

我想知道如何解决这个问题。 是否有任何方法可以重新启动 jquery 的事件或处理程序,如事件单击、更改、"hidden.bs.modal" 等,以避免重复事件?

我看过unbind()、bind()、off()等方法,可能是解决方案,但如果是的话,如何应用?

也许您可以在子页面的 jQuery 代码中尝试类似的操作:

$(document).ready(function () {
  $('#modal_establecer_turnos').off('hidden.bs.modal');
  $('#modal_establecer_turnos').on('hidden.bs.modal', function () {
    alert(“hello”);
  });
});