這裏有一個小提琴:http://jsfiddle.net/manishie/pZHMN/
它可以使用一些重構,但你想要做什麼。基本上,您將原始值保存爲封閉div的數據屬性。如果用戶保存,則保存新值。如果用戶取消,你搶從數據屬性的舊值,並把該背
HTML:
<form id="theform">
<div>
<div class="first editable">First Name</div>
<div class="last editable">Last Name</div>
<div class="edit">edit</div>
<div class="save" style="display:none;">save</div>
<div class="cancel" style="display:none;">cancel</div>
</div>
</form>
的Javascript:
$('.edit').click(function() {
$('.edit').hide();
$('.save,.cancel').show();
$('.editable').each(function(index, el) {
$(el).attr('data-orig', $(el).html());
$(el).html('<input type="text" value="' + $(el).attr('data-orig') + '">');
});
});
$('.save').click(function() {
$('.edit').show();
$('.save,.cancel').hide();
$('.editable').each(function(index, el) {
$(el).attr('data-orig', '');
$(el).html($(el).find('input').val());
});
});
$('.cancel').click(function() {
$('.edit').show();
$('.save,.cancel').hide();
$('.editable').each(function(index, el) {
$(el).html($(el).attr('data-orig'));
$(el).attr('data-orig', '');
});
});
如何使用.hide()和。 show()切換文本框和原始內容?我不認爲這會比使用clone()快得多,但它可能會更短,更易於理解。 – jobby
如何在DIV上使用'contenteditable'屬性? – Barmar