首页 > 解决方案 > Jquery绑定事件在Chrome中触发两次但在IE中有效

问题描述

Jquery 事件在 Chrome 中触发两次,但在 IE 中仅触发一次。点击事件绑定到几个标签,因此当用户点击标签时,目标事件在 Chrome 最新版本 (75) 中被触发两次,最终在目标上调用两次 ajax 调用。

我尝试过使用绑定/取消绑定方法,但它不起作用。

      $("#idElement a img").unbind("click").bind("click", function (event) 
      {
            var target = event.currentTarget;
            if (!dataSaved()) {
                event.stopPropagation();
            } else {
                $("#idElement a img").unbind("click")
                $(target).click();
            }
        });




         $("#idElement a img").on("click", function (event) {
            var target = event.currentTarget;
            if (!dataSaved()) {
                event.stopPropagation();
            } else {
                $("#idElement a img").off("click")
                $(target).click();
            }
        });

单击目标事件时,只调用一次以避免重复 ajax 调用的问题。

标签: jqueryjquery-ui

解决方案


.on 足够你不使用 .bind

 $(".wrapper").on("click","#idElement a img", function (event) {
    var target = event.currentTarget;
    if (!dataSaved()) {
        event.stopPropagation();
    } else {
        $("#idElement a img").off("click")
        $(target).click();
    }
});

.wrapper 是您的控制区域、容器或主体等。


推荐阅读