Javascript 隐藏div在jqueryajax成功中无法正常工作
我有一个jQuery脚本,在删除记录后,我将在其中隐藏div。 这是jQueryJavascript 隐藏div在jqueryajax成功中无法正常工作,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个jQuery脚本,在删除记录后,我将在其中隐藏div。 这是jQuery $(document).ready(function () { $(".deleteComment").click(function () { alert("asd"); var Id = $(this).attr("id"); var url1 = "@Html.Raw(Url.Action("DeleteComment", "Comment"
$(document).ready(function () {
$(".deleteComment").click(function ()
{
alert("asd");
var Id = $(this).attr("id");
var url1 = "@Html.Raw(Url.Action("DeleteComment", "Comment", new { id = "idValue" }))";
url1=url1.replace("idValue",Id );
alert(url1);
$.ajax(
{
type: 'post',
url: '/Comment/DeleteComment',
dataType: 'json',
data:
{
'EId' : Id
},
success: function (data)
{
alert ("Hello");
var commentBlock = $(this).closest('div');
commentBlock.hide('slow');
}
});
问题仅出现在以下代码中:
success: function (data)
{
alert ("Hello");
var commentBlock = $(this).closest('div');
commentBlock.hide('slow');
}
如果我把上面的代码放在脚本的开头,那么它就可以正常工作。如果我成功了,那么它就失败了。
这将引用Igor提到的ajax对象,他的意思是这样的
$(document).ready(function()) {
var self = this;
...
$.ajax(
...
success: function(data) {
$(self).closest("div").hide("slow");
}
);
}
不,它只是不起作用…如果我在开始时放的代码,那么它“工作得很好…”成功回调中的“这个”处理ajax对象。因此,您需要声明类似“var self=this;”的内容,然后在ajax调用中使用$(self).closest等等。我尝试了这段代码……但仍然无法工作<代码>成功:函数(数据){alert(“Hello”);var tempSharedType=$(this).最近('div');tempSharedType.hide('slow');}
谢谢@MikkoP,这正是我的意思!