列表页条目不刷新删除

简介: 2014年1月6日 12:51:15 情景: 发现博客园的后台管理中,在某个列表页里删除某个列表项的时候,用ajax删除,本页不刷新,只是高亮显示那个已删除的项,不再来回跳转并刷新页面了 感觉这样减轻了程序的编码量和复杂度,而且,让管理员很明了,减少了管理员等待页面刷新的时间,就用到了项目中(之前有段时间发现百度音乐的列表页也是类似的效果) 注意: 1.

2014年1月6日 12:51:15

情景:

发现博客园的后台管理中,在某个列表页里删除某个列表项的时候,用ajax删除,本页不刷新,只是高亮显示那个已删除的项,不再来回跳转并刷新页面了

感觉这样减轻了程序的编码量和复杂度,而且,让管理员很明了,减少了管理员等待页面刷新的时间,就用到了项目中(之前有段时间发现百度音乐的列表页也是类似的效果)

注意:

1.需要jquery,在用ajax删除记录的地方用到了,其它的都是原生js

2.由于原生js的confirm框因为样式等原因被重写了,返回值不是true/false,因此这里用一个div来代替confirm确认框

 

 1     <div>
 2         <table>
 3             <tr>
 4                 <th>标题</th>
 5                 <th>操作</th>
 6                 <th></th>
 7             </tr>
 8             <{foreach from=$listNews item=news}>
 9                 <tr id="item_<{$news.id}>">
10                     <td><{$news.title}></td>
11                     <td id="item_op_<{$news.id}>">
12                         <a href="javascript:;" onclick="del(<{$news.id}>);">删除</a>
13                     </td>
14                     <td>
15                         <span id="del_confirm_<{$news.id}>" style="display:none">
16                             <a href="javascript:;" onclick="delConfirm('<{$controllerUrl}>/ajaxdelnews', <{$news.id}>, <{$aid}>)">确定删除</a>
17                             <a href="javascript:;" onclick="delCancle(<{$news.id}>)">取消删除</a>
18                         </span>
19                     </td>
20                 </tr>
21             <{/foreach}>
22         </table>
23         注:默认按照添加时间倒排,删除的条目在刷新后从列表中消失,不再频繁刷新网页
24     </div>
25 <script type="text/javascript">
26     function del(itemid)
27     {
28         var spanDelConfirm = document.getElementById('del_confirm_'+itemid);
29         spanDelConfirm.style.display='block';
30         spanDelConfirm.style.background='#FFAA00';
31     }
32     
33     function delConfirm(url, itemid, areaid)
34     {
35         var jsonNewsInfo = {id:itemid,aid:areaid};
36         var flag = $.post(url, jsonNewsInfo);
37         flag.done(
38             function (data) {
39                 if (data == 'true') {
40                     document.getElementById('item_op_'+itemid).innerHTML='已删除';
41                     document.getElementById('del_confirm_'+itemid).innerHTML='';
42                     document.getElementById('item_'+itemid).style.background='#FFAA00';
43                 };
44             }
45             );
46     }
47 
48     function delCancle(itemid)
49     {
50         document.getElementById('del_confirm_'+itemid).style.display='none';
51     }
52 </script>

 删除前

删除确认

删除后

目录
相关文章
|
11月前
|
文字识别 数据可视化 Serverless
阿里云多模态数据信息提取解决方案评测报告
本文基于阿里云多模态数据信息提取解决方案,对其进行全面评测。该方案利用百炼大模型等技术,支持文本、图像、音频和视频处理,显著提升效率并降低成本。体验中,文本和图片信息提取功能表现出色,部署便捷且准确率高。优势包括易用性、多模态支持和高性价比,但文档完善性和模型定制性等方面仍有提升空间。建议增强模型可定制性、跨模态融合能力及丰富文档案例,以进一步优化用户体验。
395 6
|
关系型数据库 Go 数据库
【Go语言专栏】Go语言中的数据库迁移与版本控制
【4月更文挑战第30天】本文介绍了Go语言中的数据库迁移和版本控制。针对数据库迁移,文章提到了使用Flyway和Liquibase两个工具。通过示例展示了如何在Go中集成这两个工具进行数据库结构的修改,以适应业务变化。而对于版本控制,文章以Git为例,说明了如何利用Git进行源代码和配置文件的管理,确保代码一致性与可追溯性。
604 0
|
人工智能 Ubuntu 机器人
【ubuntu】手把手教你解决ubuntu报错openssh-server E: Sub-process /usr/bin/dpkg returned an error code (1)
【ubuntu】手把手教你解决ubuntu报错openssh-server E: Sub-process /usr/bin/dpkg returned an error code (1)
|
语音技术 iOS开发 MacOS
Mac上的全局翻译利器 : Bob + PopClip
Mac上的全局翻译利器 : Bob + PopClip
1190 0
广播风暴的分析和解决方法(STP配置)
广播风暴的分析和解决方法(STP配置)
261 0
|
数据安全/隐私保护 C++
C++程序中的派生类
C++程序中的派生类
218 1
|
开发框架 .NET
Asp.Net就业课之案例实践第二次课
Asp.Net就业课之案例实践第二次课
71 0
Asp.Net就业课之案例实践第二次课
|
存储 缓存 ARouter
Android开源系列-组件化框架Arouter-(二)深度原理解析
最近组里需要进行**组件化框架**的改造,用到了**ARouter**这个开源框架,为了更好的对项目进行改造,笔者花了一些时间去了解了下ARouter
|
消息中间件 存储 缓存
kafka权威指南 第二章第6节 Kafka集群配置与调优
kafka权威指南 第二章第6节 Kafka集群配置与调优
466 0
kafka权威指南 第二章第6节 Kafka集群配置与调优
|
监控 数据可视化 Java
手把手教你搭建SpringCloud项目(十二 )集成Hystrix之图形化Dashboard实时监控
手把手教你搭建SpringCloud项目(十二 )集成Hystrix之图形化Dashboard实时监控
313 1