jQuery focusout事件重复自身问题

jQuery focusout事件重复自身问题,jquery,focus,jquery-events,Jquery,Focus,Jquery Events,这是可行的,但每次我单击我想要获取的元素时,都会“计算”单击次数,然后打印日志注释,总单击次数相同 例如,如果我在一行中单击元素3次(然后单击外部以触发聚焦输出),它将打印3条日志注释,如果我再单击2次(再次单击外部),它将打印5条日志注释 每次单击元素外部时,我只想得到一条log注释 有人帮忙吗 $("#main-wrapper").click(function (e) { var contenteditable = $(e.target).attr('conte

这是可行的,但每次我单击我想要获取的元素时,都会“计算”单击次数,然后打印日志注释,总单击次数相同

例如,如果我在一行中单击元素3次(然后单击外部以触发
聚焦输出
),它将打印3条日志注释,如果我再单击2次(再次单击外部),它将打印5条
日志
注释

每次单击元素外部时,我只想得到一条
log
注释

有人帮忙吗

 $("#main-wrapper").click(function (e) {
    var contenteditable = $(e.target).attr('contenteditable');
    if (contenteditable == 'true') {
        $(e.target).focusout(function() {
            var content = $(this).html();
            console.log("get: " + content);
        });
    };          
});

尝试解除事件绑定

$("#main-wrapper").click(function (e) {
var contenteditable = $(e.target).attr('contenteditable');
if (contenteditable == 'true') {
    $(e.target).unbind('focusout').focusout(function() {
        var content = $(this).html();
        console.log("get: " + content);
    });
};          
});

尝试解除事件绑定

$("#main-wrapper").click(function (e) {
var contenteditable = $(e.target).attr('contenteditable');
if (contenteditable == 'true') {
    $(e.target).unbind('focusout').focusout(function() {
        var content = $(this).html();
        console.log("get: " + content);
    });
};          
});

每次处理
单击
时,都会附加一个新的
聚焦输出
事件处理程序。这些事件处理程序不会被替换,而是被添加,每个事件处理程序都会在触发事件时执行。这就是为什么您会收到与以前单击相同数量的日志消息

您应该能够只指定一次
focusout
处理程序,但是您希望如何触发它当然取决于您想要完成的任务

$("#main-wrapper").focusout(function (e) {
  var contenteditable = $(e.target).attr('contenteditable');
  if (contenteditable == 'true') {
    var content = $(this).html();
    console.log("get: " + content);
  }          
});

每次处理
单击
时,都会附加一个新的
聚焦输出
事件处理程序。这些事件处理程序不会被替换,而是被添加,每个事件处理程序都会在触发事件时执行。这就是为什么您会收到与以前单击相同数量的日志消息

您应该能够只指定一次
focusout
处理程序,但是您希望如何触发它当然取决于您想要完成的任务

$("#main-wrapper").focusout(function (e) {
  var contenteditable = $(e.target).attr('contenteditable');
  if (contenteditable == 'true') {
    var content = $(this).html();
    console.log("get: " + content);
  }          
});

除非我弄错了,否则这也将解除
单击
处理程序的绑定,因此这只适用于第一次单击。您应该能够执行
unbind('focusout')
操作。除非我弄错了,否则这也会解除
click
处理程序的绑定,因此这只适用于第一次单击。不过,您应该能够执行
unbind('focusout')