ADD をクリックすると、コンテナに DIV が追加されます。この DIV には、MENU div とEDIT divの 2 つのdiv が含まれています。
フォーカス EDIT div -この EDIT Div を TEXTAREA に置き換え、EDIT DIV からこの TEXTAREA にテキストを挿入したいと考えています。いくつかのテキストを入力し、ぼかしでTEXTAREA を DIV に戻し、 TEXTAREA から新しい編集済みテキストをこの EDIT DIV に挿入します。
しかし、私には2つの問題があります:
- ターゲティングあり。MENU からのテキストが TEXTAREA に挿入され、MENU DIV が消えるためです。
- 初めてダブルクリックを使用して DIV と TEXTAREA を変更すると、次回は単純なクリックだけで変更されます。なぜ、どのように修正するのですか?
HTML
<div id="add" style="background:yellow; width:100px;"> add new </div>
<div id="container"> </div>
jQuery
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();
});
}
});