Javascript jquery多次单击事件工作

Javascript jquery多次单击事件工作,javascript,jquery,Javascript,Jquery,我正在使用jquery查找单击事件时iframe中的每个目标元素。但是单击事件会在每次单击时触发多次。这是我使用的代码。我使用这个函数在单击时设置每个目标元素的样式。我怎样才能解决这个问题 var getElement = function () { $('[data-edit="froala"]').on('froalaEditor.initialized', function (e, editor) { var $div_tag = $('[data-edit="

我正在使用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);
   });
 }

在绑定现有更改事件之前先解除其绑定,以防止事件多次工作

添加.off('change')以解除所有现有更改事件的绑定
before.on('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);
});

在绑定现有更改事件之前先解除其绑定,以防止事件多次工作

添加.off('change')以解除所有现有更改事件的绑定
before.on('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);
});

然后可能会多次触发foralaEditor.initialized。
尝试使用off,但在div_标记上单击not on body


然后可能会多次触发foralaEditor.initialized。
尝试使用off,但在div_标记上单击not on body



您还可以添加您的html代码吗?什么是froala,何时触发foalaEditor.initialized?检查您的
froalaEditor.initialized
被触发的频率。您每轮添加一个新的点击处理程序
$div_tag
。froala是一个内联编辑器,froalaEditor.initialized用于检查froala是否已加载
您在
查找('iframe')
之后缺少一个
,可能是一个打字错误…@pleinx感谢您的回复。实际上,froalaEditor.initialized只工作一次。事实上,问题的发生是由于我处理目标元素的方法错误。问题是,当我在iframe中单击一个div元素时,我得到了div目标对象及其wrking fine。然后我点击另一个div,我得到了previos的click div和current div对象,它就像一个循环,你也可以添加你的html代码吗?什么是froala,何时触发foalaEditor.initialized?检查您的
froalaEditor.initialized
被触发的频率。您每轮添加一个新的点击处理程序
$div_tag
。froala是一个内联编辑器,froalaEditor.initialized用于检查froala是否已加载
您在
查找('iframe')
之后缺少一个
,可能是一个打字错误…@pleinx感谢您的回复。实际上,froalaEditor.initialized只工作一次。事实上,问题的发生是由于我处理目标元素的方法错误。问题是,当我在iframe中单击一个div元素时,我得到了div目标对象及其wrking fine。然后我点击另一个div,我得到了previos click div和current div对象,它就像一个循环。当我使用off事件时,它不适用于[data style=“hr style”]更改方法。只有第二个[data style=“div style”]改变了工作方法。如果我评论第二个[data style=“div style”]更改方法,那么第一个[data style=“hr style”]更改方法工作精细现在它的工作精细。但这种方法是好方法吗?。如何在代码中防止多次。off()函数是最好的方法,它可以从元素中解除现有事件的绑定,并防止事件多次工作使用$('[data style=“hr style”]')。off('change')。on('change',函数(event){@YeldhoPaul啊。我看到我以前的代码只解除了body的更改事件的绑定,而不是[data style=“hr style”]和[data style=“div style”]当我使用off事件时,它对[data style=“hr style”]更改方法不起作用。只有第二个[data style=“div style”]更改方法起作用。如果我注释第二个[data style=“div style”]change method,然后首先[data style=“hr style”]change method working fine现在工作正常。但是is off method是一个好方法吗?如何在代码中防止多次。off()函数是最好的方法,它可以从元素中解除现有事件的绑定并防止事件多次工作使用$('[data style]时工作正常=“hr style”]).off('change').on('change',function(event){@YeldhoPaul-ah。我看到我以前的代码只解开body的change事件,而不是[data style=“hr style”]和[data style=“div style”]谢谢你的回复。它不起作用。trigger_对象中的change方法在iframe中的每个click-in元素上运行多次。我如何解决这个问题issue@YeldhoPaul请添加html代码(使用数据目标的位置)回答你的问题。谢谢你的回答。它不起作用。触发器_对象中的更改方法在iframe中的每个点击元素上都起了多次作用。我如何解决这个问题issue@YeldhoPaul请在问题中添加html代码(使用数据目标)。