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

时间:2018-07-24 23:57:29

标签: javascript jquery html unbind

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

<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);
                    });
        });       

});

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

$(document).ready(function () {

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

通过单击包含类“ menu_navegacion_abrircaja”的链接,我得到警报(“ hello”); 但事实证明,这是一个问题,每次我单击链接时,都会重复发出警报消息(警报(“ hello”);)。例如,我第一次单击包含菜单menu_navegacion_abrircaja类的链接,可以很好地显示一次警报,但是随后我再次单击同一链接,它两次向我显示警报,然后第三次执行该警报,他向我显示了警报的三倍,依此类推。

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

我已经看到了unbind(),bind(),off()的方法,这可能是解决方案,但是如果是这样,您如何应用它们?

1 个答案:

答案 0 :(得分:0)

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

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