基本上,我希望用户点击任何.editable项目,会出现一个输入框并复制其样式,然后如果他们在其他地方单击,我希望输入框消失并保存更改。但是我发现这很困难。我看到了使用 event.stopPropagation 的解决方法,但是我不知道如何将其包含在我代码的结构中:
$(function() {
var editObj = 0;
var editing = false;
$("html").not(editObj).click(function(){
if (editing){
$(editObj).removeAttr("style");
$("#textEdit").hide();
alert("save changes");
}
});
$(".editable").not("video, img, textarea")
.click(function(event) {
editObj = this;
editing = true;
$("#textEdit")
.copyCSS(this)
.offset($(this).offset())
.css("display", "block")
.val($(this).text())
.select();
$(this).css("color", "transparent");
});
}
从这里复制copyCSS函数。
我需要区分对可编辑对象的点击和对其之外的点击,即使该点击是在不同的可编辑对象上(在这种情况下应调用2个事件)。