我已将代码上传到JSfiddle:
http://jsfiddle.net/TSM_mac/pnQEe/
我希望能够在页面上输入文本输入,然后单击“添加Div类型”按钮,它将在您单击的div中附加(创建)div元素(具有该类=“可编辑”)。
我在使这段代码工作时遇到了困难。谁能找到我出错的地方?
var $currentInput = null;
$("#add_div1, #add_div2, #add_div3").click(function() {
$currentInput = null;
if ($currentInput == null) {
$currentInput = $(this).prev();
$("label").html($currentInput.attr("id"));
}
});
var editid;
$("div.editable").click(function(e) {
e.stopPropagation();
if ($currentInput == null) return;
editid = $(this).attr("id");
var adddiv = GetElements();
$(this).append(adddiv);
$("label").html("");
});
function GetElements() {
if ($currentInput == null) return null;
var value = $currentInput.val();
if ($currentInput.attr("id") == "add_div1") return {
"<div>"+value+"</div>"
}
if ($currentInput.attr("id") == "add_div2") return {
"<div>"+value+"</div>"
}
if ($currentInput.attr("id") == "add_div3") return {
"<div>"+value+"</div>"
}
}
-
<input type="text" id="add-div1" value="Content of Div 1" />
<div id="add_div1">Add Div Type 1</div>
<input type="text" id="add-div1" value="Content of Div 2" />
<div id="add_div2">Add Div Type 2</div>
<input type="text" id="add-div1" value="Content of Div 3" />
<div id="add_div3">Add Div Type 3</div>
<div id="2" class="defaultclass editable">
Add a Div Here
</div>
<div id="3" class="defaultclass editable">
Add a Div Here
</div>
<div id="4" class="defaultclass editable">
Add a Div Here
</div>
<label></label>
-
input { display: block; padding-top: 10px; }
#add_div1, #add_div2, #add_div3 { background: #c0c0c0; border: solid 1px #777; display: inline-block; }
.editable { border: solid 5px green; margin: 20px; background: blue; color: #fff; }
问候,
泰勒
答案 0 :(得分:0)
这个现在可以使用
(我添加了一些console.log
但现在被注释掉了)
似乎您的代码是您需要单击按钮然后单击div
问题#1:您有return { ... }
应该{ return ... }
或return ...
问题#2:您有add-div1
,但代码是针对add_div1
检查的(下划线,不是连字符)
另外,我尝试不要有两个具有相同或相似ID名称的元素。 (例如文本输入为add-div1
,按钮为add_div1
- 看起来太相似了。