嗨,我试图在 jquery 中创建一个编辑脚本,将 p 内容更改为输入字段,并让人们编辑它们,然后恢复为内容。
我的代码:
<div class="addressblock">
<div class="data">
<p name="bedrijfsnaam">company name</p>
<p name="tav">to whom</p>
<p name="adres">street and number</p>
<p name="postcode">1234AB</p>
<p name="woonplaats">city</p>
<p name="land2" >Land</p>
</div>
<a href="#_" class="editinv" id="00001" name="edit">Edit</a>
</div>
jQuery =
$(document).ready(function () {
$(".editinv").click(function() {
var editid = $(this).attr("id");
var edit_or_text = $(this).attr("name");
if(edit_or_text == "edit"){
$(this).closest('div').find('p').each(function(){
var el_naam = $(this).attr("name");
var el_content = $(this).text();
$(this).replaceWith( "<input type='text' name='"+el_naam+"' id='" + el_id + "' value='"+el_content+"' />" );
});
$(".editinv").replaceWith( "<a href='#_' class='editinv' name='done' id='"+editid+"'>Done</a>" );
}
if(edit_or_text == "done"){
$(this).closest('div').find('input').each(function(){
var el_naam = $(this).attr("name");
var el_content = $(this).attr("value");
$(this).replaceWith( "<p name='"+el_naam+"' id='" + el_id + "'>'"+el_content+"' </p>" );
});
$(".editinv").replaceWith( "<a href='#_' class='editinv' name='edit' id='"+editid+"'>Bewerken</a>" );
}
});
});
单击编辑时,它会完美地更改为输入字段并将编辑按钮更改为完成按钮。尽管类是相同的,但从未注册过单击完成按钮。
有人有什么想法吗?
提前致谢!
编辑:我创建了问题的 JSfiddle http://jsfiddle.net/hBJ5a/
这很简单,为什么元素不接受第二次点击并在已更改后恢复?