我有一个显示div块中包含的信息的站点。 信息来自数据库,因此用户可以更改信息或删除信息。
当用户删除div块时,我想使用jQuery来动画它的消失,以及它从数据库中删除。 如何在不进行回发的情况下执行此操作,我不希望网站重新加载,我只是希望Div块在视觉上消失并同时从数据库中消失。
我会使用Ajax更新面板来实现这一目标吗?
答案 0 :(得分:5)
试试这个。您必须在开始时更改表达式并创建Web服务来处理回调。
<script type="text/javascript" language="javascript">
var expression = "div.deleteable";
jQuery(function($) {
$(expression).click(function(){
var itemId = $(this).attr("Id");
$.ajax({ type: "POST",
url: "YourPage.aspx/DeleteItem",
data: "{'Id' :'" + itemId + "'}",
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function(json) {
$(this).slideUp('fast',function(){
//gone - perhaps report to the user that delete was successful,
//by accessing jason.d
var result = eval("(" + json.d + ")");
$(this).remove();
});
},
timeout: 5000,
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (textStatus == 'timeout') {
alert('timeout');
}
//Other error handlers here
}
});
});
});
</script>
页面代码隐藏文件中的:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public static string DeleteItem(string Id)
{
//Returns a json string with success message
var result = YourBusinessLayerClass.DeleteItem(Id);
return result;
}
答案 1 :(得分:3)
像这样......
$.ajax({ ...
success : function(){
var target = $('#MyDeletedElement');
target.fadeOut('fast',function(){
target.remove();
});
});
答案 2 :(得分:1)
尽管整个示例是使用php编写的,但这应该可以让您基本了解如何完成您要执行的操作。
http://papermashup.com/jquery-ajax-delete/
此链接将显示如何使用JQuery
在代码隐藏文件中调用WebMethod