これはedit-in-place-using-ajaxからの直接的なリフトですが、機能していません。誰でも理由を提案できますか?保存ボタンもキャンセルボタンも何もしません。クリックしたときに saveButton と cancelButton がクリックイベントに割り当てられたjqueryコードを起動していないことがわかりました。
<script src="/jscript/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#editInPlace").click(function(){
var textarea = '<div><textarea rows="5" cols="30">' + $(this).html() + '</textarea>';
var button = '<div><input type="button" value="SAVE" class="saveButton" /> OR <input type="button" value="CANCEL" class="cancelButton"/></div></div>';
var revert = $(this).html();
$(this).after(textarea+button).remove();
});
$('.saveButton').click(function(){saveChanges(this, false);});
$('.cancelButton').click(function(){saveChanges(this, revert);});
function saveChanges(obj, cancel) {
if (!cancel) {
var t = $(obj).parent().siblings(0).val();
alert('new text='+t);
}else {
var t = revert; //orig code had cancel;
}
$(obj).parent().parent().after('<div id="editInPlace">'+t+'</div>').remove()
}
});
</script>
<div id='editInPlace'>we are going to change this comment.</div>
@nbrook の画像を追加する (彼の提案したコードに基づく)...
初期表示 →
最初のクリックで ->
テキストエリア内の2回目のクリック->
これは続きます...