嘿,我将使用jquery ajax在asp.net中创建一个实时评论系统......
我必须使用insertComment()和getComment()...
第一个问题是'这个'我没有在一个功能内工作,而不是我搜索它,我通过传递解决了这个'这个' keywork作为函数参数,如下所示:
<input type="button" value="Post" id="btnComment" onclick="insertComment(this);" />
所以简而言之,我已经完成了插入评论部分,但现在我实际上面对的是这个&#39;这个&#39;关键字问题我认为bcz现在当我在insertComment()中调用getComment()函数时它比非常酷但是在getComment()函数中我还需要&#39;这个&#39;关键字,我已经尝试但不为我工作
贝娄是完整的代码:
insertComment方法
function insertComment(com) {
var txtComment = $(com).parent('div.Comment-Post-2').parent('div.Comment-Post').parent('div.d8').children('div.Comment-Post').children('div.Comment-Post-2').children('.txtComment').val();
$.ajax({
url: 'index.aspx/NewComment',
method: 'POST',
contentType: 'application/json;charset=utf-8',
data: '{cmntText: "' + txtComment + '"}',
success: function (com) {
//here i'm calling the getComment function and passing 'this' keyword but its not works inside the getComment funciton
getcomment(this);
$('.txtComment').val("");
},
error: function (e) {
alert(e);
}
});
}
getComment方法
function getcomment(g) {
//this function calls when comment inserts and alerts ('works') pretty well but the $(g).pa.... not working
alert("works");
$(g).parents('div.Comment-Section').hide();
}
请帮帮我 提前谢谢
答案 0 :(得分:0)
使用context
的{{1}}选项在$.ajax()
回调中设置this
success
答案 1 :(得分:0)
在getcomment(this);
行中,this
并不是指您要引用的对象,因为它位于另一个函数中。在ajax之前定义它然后你应该能够使用它
function insertComment(com) {
var txtComment = $(com).parent('div.Comment-Post-2').parent('div.Comment-Post').parent('div.d8').children('div.Comment-Post').children('div.Comment-Post-2').children('.txtComment').val();
var obj = this ; /* or any thing you want */
$.ajax({
url: 'index.aspx/NewComment',
method: 'POST',
contentType: 'application/json;charset=utf-8',
data: '{cmntText: "' + txtComment + '"}',
success: function (com) {
//here i'm calling the getComment function and passing 'this' keyword but its not works inside the getComment funciton
getcomment(obj);
$('.txtComment').val("");
},
error: function (e) {
alert(e);
}
});
}
答案 2 :(得分:0)
我通过将insertComment的'com'参数作为getComment参数传递来解决它:
function insertComment(com) {
var txtComment = $(com).parent('div.Comment-Post-2').parent('div.Comment-Post').parent('div.d8').children('div.Comment-Post').children('div.Comment-Post-2').children('.txtComment').val();
$.ajax({
url: 'index.aspx/NewComment',
method: 'POST',
contentType: 'application/json;charset=utf-8',
data: '{cmntText: "' + txtComment + '"}',
success: function () {
//here i just passed 'com' instead 'this' and now it works
getcomment(com);
$('.txtComment').val("");
},
error: function (e) {
alert(e);
}
});
}