当您单击 ADD 时,一些 DIV 被添加到容器中。此 DIV 包含两个 div - MENU div 和EDIT div。
在焦点 EDIT div - 我想用 TEXTAREA 替换这个 EDIT Div并将文本从 EDIT DIV 插入到这个 TEXTAREA。比输入一些文本和模糊我想用 DIV 替换 TEXTAREA - 并将新的编辑文本从 TEXTAREA 插入到这个 EDIT DIV。
但我有两个问题:
- 有针对性。因为来自 MENU 的文本正在插入到 TEXTAREA 并且 MENU DIV 消失。
- 当我第一次使用双击来更改 DIV 和 TEXTAREA 时,下次只需单击即可。为什么以及如何解决它?
HTML
<div id="add" style="background:yellow; width:100px;"> add new </div>
<div id="container"> </div>
查询
function handler4(){
var edited_DIV = $(this);
$(edited_DIV).live({
click: function() {
if ($(this).children('textarea').length === 0) {
var text_from_DIV = $(edited_DIV).find("#edit_div").text();
$(this).html("<textarea class='inputbox' >"+text_from_DIV+"</textarea>");
$("textarea.inputbox").focus();
$("textarea.inputbox").blur(function() {
var text_from_TEXTAREA = $(this).val();
$(edited_DIV).text(text_from_TEXTAREA);
});
}
}
});
}
$("#add").on({
click: function(e) {
var timestamp = Date.now();
var posx = Math.floor(Math.random() * 400);
var posy = Math.floor(Math.random() * 400);
$('#container').append(function() {
return $('<div class="add_to_this" id="' + timestamp + '" style="left:' + posx + 'px; top:' + posx + 'px; "><div id="edit_div"><div id="menu" style="color:red;"><b> MENU </b></div>Click here to edit</div></div>').dblclick(handler4).draggable({
containment: "#container",
scroll: false,
cursor: 'lock',
opacity: 0.55,
grid: [2, 2]
}).resizable();
});
}
});