我在facebook上有像墙一样的东西。每篇文章都有以下评论。 我想要做的是编辑评论选项。 它用textarea格式替换当前评论,并在接受后显示新评论。 按钮不能很好地工作。它应该是动态的(无需刷新网站即可工作)。但是我遇到了一些困难。编辑链接在其他一些注释下打开textarea或者在textarea框中显示第一个注释(新的应该出现...)我现在要做的是将.data()固定到“this”按钮和它将包含新的评论文本,因此我将能够动态地将其读取到开头的textarea。我并不完全确定我在做什么,而且我不确定使用.this,但我希望你能以某种方式帮助我!警报显示“未知数据”。是否有更好的解决方案不需要js中的主级技能?
<a href="#!" class="editButton" onClick="editComment({{$comment->h_id}}, `{{$comment->f_text}}`)">
<script>
function editComment(id, text){
var thisId = "#" + id;
$(thisId).replaceWith("<form class='newCommentForm'>\n\
<textarea id='newComment'>" + text + "</textarea>\n\
<input type='button' id='submit' value='save'>\n\
</form>");
$('#submit').click(function() {
var newComment = document.getElementById('newComment').value;
$.ajax({
type: 'get',
url: '/editcomment',
data: {newComment: newComment,
id: id},
success:function(){
$(".newCommentForm").replaceWith("<span id='" + id + "' class='limitedText shorter' style>" + newComment + "</span>");
$(".editButton", this).data("PinComment", "newComment");
alert($(".editButton", this).data("PinComment"));
},
error:function(){
alert('error');
}
});
});
}
</script>
答案 0 :(得分:0)
在你的ajax调用中,this
不再引用DOM元素。
<强>编辑:强>
首先将评论对象放在变量
中$thisComment = $(thisId);
然后改变:
$(".editButton", this)
成:
$(".editButton", $thisComment)