Это начало. Добавьте событие щелчка к ссылкам и событие размытия к входам, используя live()
.
$(function() {
$("td.url a").live("click", function() {
var parent = $(this).parent();
$(this).replaceWith("<input type='text' value='" + $(this).attr("href") + "'>"); //closing angle bracket added
parent.children(":text").focus();
return false;
});
$("td.url :text").live("blur", function() {
$(this).replaceWith("<a href='" + $(this).val() + "'>");
});
});
При этом для такого рода вещей я предпочитаю не удалять элементы из DOM, как это. Вместо этого я предпочитаю просто скрывать / показывать элементы по мере необходимости. Например:
<table>
<tr>
<td class="url">
<a href="http://www.domainname.com/page1.html" />
<input type="text">
</td>
</tr>
</table>
с:
td.url input { display: none; }
td.edit a { display: none; }
td.edit input { display: block; }
и
$(function() {
$("td.url a").click(function() {
var a = $(this);
a.next().val(a.attr("href")).focus();
a.parent().addClass("edit");
return false;
});
$("td.url :text").blur(function() {
var txt = $(this);
txt.prev().attr("href", txt.val());
txt.parent().removeClass("edit");
});
});