jQuery实现动态控制页面元素的方法分析


Posted in jQuery onDecember 20, 2017

本文实例讲述了jQuery实现动态控制页面元素的方法。分享给大家供大家参考,具体如下:

背景

最近做了一个小系统,其中需要在页面对用户的好友进行增删改查。本来没有那么复杂,用表格形式就可以相对容易的实现。

但是考虑到用户的体验度,首先添加尽量不想用输入,就采用将所有用户分类显示,然后点击即可添加。

添加的用户同时在界面显示,显示出用户当前的好友。同时点击已经添加好的好友可进行下一部的业务操作。

当然,删除的操作是仿照手机端那样,右上角有一个红色的“x”,点击该好友即可删除。

最后界面还能退出删除的模式,恢复正常的模式。

功能说明

1. 添加用户:在列表中点击即添加用户,同时添加onclick事件
2. 删除用户:点击该好友即可删除
3. 进入删除模式:将界面改为删除模式,切换onclick事件
4. 恢复正常模式:将界面改为正常模式,切换onclick事件

图片展示

jQuery实现动态控制页面元素的方法分析

代码

//添加用户为自己常用好友
function Add(e) {
  var friend_id = e.id;
  var name = $("#" + friend_id).html();
  //将要插入页面的好友html代码
  var content = "<div id=\"friend" + friend_id + "\" class=\"case-item\" onclick=\"" + game_type + "(this)\"><div class=\"ih-item circle effect1\"><a href=\"#\"><img class=\"img_wrong\" src=\"image/wrong.png\" style=\"float: right; width: 15px; height: 15px;display:none\" /><div class=\"spinner\"></div><div class=\"img\"><h3 id=\"" + friend_id + "\">" + name + "</h3></div><div class=\"info\"><div class=\"info-back\"><h3 class=\"info-word\">" + info_word + "</h3></div></div></a></div></div>";
  //向数据库添加,通过结果来确定界面显示
  $.ajax({
   url: "userlist.aspx/AddFriend",
   data: "{'username':'" + $('#username').text() + "','friend_id':'" + friend_id + "'}",
   type: 'Post',
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: function (result) {
    if (result.d == "true") {
     $(".case-content").append(content);//数据库添加成功,插入html代码
    }
    else {
     alert(result.d);
    }
   },
   error: function (err) {
    alert("未知错误");
   }
  });
}
//删除好友
function Delete(e) {
  var friend_id = e.id;
  $.ajax({
   url: "userlist.aspx/DeleteFriend",
   data: "{'username':'" + $('#username').text() + "','friend_id':'" + friend_id + "'}",
   type: 'Post',
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: function (result) {
    if (result.d == true) {
     $("#" + friend_id).remove();//在界面移除好友
    }
    if (result.d == false) { alert("删除失败"); }
   },
   error: function (err) {
    alert("未知错误");
   }
  });
}
//重置好友-切换到删除模式
function ChangeToDelete() {
  $(".case-item").removeAttr("onclick");//删除onclick事件
  $(".case-item").attr("onclick", "Delete(this);");//添加新的onclick事件
  $(".img_wrong").css("display", "block");//使删除图标可见
  $(".info-word").html("删除");//改变提示文字
}
//关闭重置-切换到正常模式
function ChangeToNormal() {
  $(".case-item").removeAttr("onclick");//删除onclick事件
  $(".case-item").attr("onclick", "");//添加新的onclick事件
  $(".img_wrong").css("display", "none");//使删除图标不可见
  $(".info-word").html(info_back);//恢复提示文字
}

小结

这次练习学到的内容有两点:

1. Ajax和后台的交互;
2. JQuery对页面元素的属性控制

最后想说的是,真正有个需求驱动你的时候,你会实践很多,学到很多。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery手风琴的简单制作
May 12 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jQuery实现手势解锁密码特效
Aug 14 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
jQuery 改变P标签文本值方法
Feb 24 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
jquery自定义显示消息数量
Dec 19 #jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 #jQuery
jquery中done和then的区别(详解)
Dec 19 #jQuery
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 #jQuery
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 #jQuery
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 #jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 #jQuery
You might like
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
Django 中 cookie的使用
2017/08/17 PHP
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
js style动态设置table高度
2014/10/21 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python的re模块使用方法详解
2019/07/26 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python gevent协程切换实现详解
2020/09/14 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
《夜晚的实验》教学反思
2014/02/19 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
商务考察邀请函模板
2015/02/02 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
python 常用的异步框架汇总整理
2021/06/18 Python
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers