这件事情有效,但每次我点击我想要的元素时,它会“计算”点击次数,然后打印相同总点击次数的日志评论。
例如,如果我连续3次单击该元素(然后单击外部以触发焦点),则会打印3条日志注释,如果我再单击2次(再次在外面)则会打印5 {{ 1}}评论。
我希望每次点击元素外只有1 log
个评论。
帮助任何人?
log
答案 0 :(得分:2)
尝试取消绑定事件。
$("#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);
});
};
});
答案 1 :(得分:1)
每次处理focusout
时,都会附加一个新的click
事件处理程序。这些事件处理程序不是替换,而是添加,并且在触发事件时执行每个事件处理程序。这就是为什么你获得与之前点击相同数量的记录消息。
您应该只能指定一次focusout
处理程序,但是您希望如何触发它当然取决于您想要完成的任务。
$("#main-wrapper").focusout(function (e) {
var contenteditable = $(e.target).attr('contenteditable');
if (contenteditable == 'true') {
var content = $(this).html();
console.log("get: " + content);
}
});