javascript - jquery click 事件多次工作

标签 javascript jquery

我正在使用 jquery 在单击事件时查找 iframe 中的每个目标元素。但每次点击时,点击事件都会触发多次。这是我使用的代码。我正在使用此函数来设置单击时每个目标元素的样式。我该如何解决这个问题。

 var getElement = function () {
     $('[data-edit="froala"]').on('froalaEditor.initialized', function (e, editor) {
        var $div_tag = $('[data-edit="froala"]').find('iframe').contents().find('body');
            $div_tag.on('click', function(e) {
                var element_name = e.target.nodeName.toLowerCase();
                var $target_class = $('[data-target="'+element_name+'"]');
                trigger_object(e);
        });
     });
 }

 var trigger_object = function (e) {
   $('body').on('change', '[data-style="hr-style"]', function (event) {
       $(e.target).css($(this).data('css'),this.value);
   });
   $('body').on('change', '[data-style="div-style"]', function (event) {
       $(e.target).css($(this).data('css'),this.value);
   });
 }

最佳答案

在绑定(bind)现有更改事件之前取消绑定(bind)它,以防止事件多次工作

添加 .off('change') 以解除绑定(bind)所有现有的更改事件
在.on('change')之前绑定(bind)change事件

$('[data-style="hr-style"]').off('change').on('change', function (event) {
   $(e.target).css($(this).data('css'),this.value);
});
$('[data-style="div-style"]').off('change').on('change', function (event) {
   $(e.target).css($(this).data('css'),this.value);
});

关于javascript - jquery click 事件多次工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40277515/

相关文章:

javascript - 更改选择时的表单操作

javascript - 在 JavaScript switch 语句中使用 OR 运算符

javascript - 移动设备上的 Bootstrap 聊天小部件

c# - 网络浏览器 : simulate mouse click on ul-li item in webpage

jQuery:Chrome 中的 Ajax 请求中止

javascript - jQuery连续ajax调用

javascript - 在 div 的可见部分居中内容

javascript - jQuery 从输入中获取值并创建一个数组

javascript - 输入迄今为止搜索的术语时,jQuery UI 自动完成不会触发搜索

javascript - 单击按钮从上到下滚动到搜索词