おそらく、既存のソリューションを使用する方が簡単でしょう。例:jeditable
ただし、必要に応じて(デモを参照):
$(document).ready(function () {
var beginEdit = function () {
var text = $(this).text();
var input = $('<input value="' + text + '" type="text">').one('blur', endEdit);
$(this).empty().append(input);
};
var endEdit = function () {
var text = $(this).val();
$(this).parent().html(text).one('click', beginEdit);
};
$(".text").one('click', beginEdit);
});
jQueryのプラグインとして(DEMO2を参照):
$.fn.editable = function () {
this.each(function () {
var beginEdit = function () {
var text = $(this).text();
var input = $('<input value="' + text + '" type="text">').one('blur', endEdit);
$(this).empty().append(input);
};
var endEdit = function () {
var text = $(this).val();
$(this).parent().html(text).one('click', beginEdit);
};
$(this).one('click', beginEdit);
});
};
$(document).ready(function () {
$(".text").editable();
});