初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能


Posted in Javascript onDecember 26, 2011

解决思路:
1、 在标题处增加一个【—】【+】号,供用户点击。
2、 用户收缩和展开屏幕的行为保存在Cookie里面。页面重新加载或者用户重新登录系统,仍然能记住用户的行为。


优点:1、使用Jquery插件的形式来做,容易扩展。容易实现。

2、 保存在Cookie的行为,容易实现,减少工作量,用户也能接收。如保存在数据库,则增加页面的负载。

缺点:不能每个页面使用单独行为,既是:每次用户的收缩和扩展在系统都是全局的。并且到其他计算机登录、或者清除缓存之后,就不能记住用户的操作了。


首先使用js函数的方式实现。然后改成Jquery插件:代码

/* 
* TableToggle 0.1 
* Copyright (c) 2011 Novus_lee http://www.cnblogs.com/novus 
* Date: 2011-12-23 
* 在SageCRM的查询屏幕隐藏部分行的功能 
*/ 
(function($){ 
$.fn.TableToggle = function(options){ 
var defaults = { 
plussrc : "/upload/201112/20111226224658296.gif", //--[+]号图片 
minussrc : "/upload/201112/20111226224658809.gif", 
line : 2 
} 
var options = $.extend(defaults, options); 
var flip = 0, i = 0; 
this.each(function(){ 
var $thisTable = $(this); 
var claName = "btntoggle" + i; 
//--所在表格的上方增加图片按钮 
var $Title = $thisTable.parent().parent().parent().find("td.PANEREPEAT"); 
$Title.prepend("<a href='javascript:void(0);' class='" + claName + "' style='cursor:pointer;padding-right:10px;'><img style='border:0px;' src='" + options.minussrc + "'></a>"); 
var trlen = $thisTable.find("tr").length; 
options.line = (options.line > trlen ? trlen : options.line); 
$Title.find("a." + claName).click(function () { 
$thisTable.find("tr:gt(" + options.line + ")").toggle(flip++); 
if (flip % 2 == 0) 
{ 
$Title.find("img[src*='smallplus']").attr("src",options.minussrc); 
$.cookie(claName, "plus"); 
} 
else 
{ 
$Title.find("img[src*='smallminus']").attr("src",options.plussrc); 
$.cookie(claName, "smallminus"); 
} 
}); 
if ($.cookie(claName) == "smallminus" || $.cookie(claName) == "" || $.cookie(claName) == null) 
{ 
$("a." + claName).click(); 
} 
i++; 
}); 
}; 
})(jQuery);

插件还调用了一个jquery的Cookie插件。
调用的方法:
<script type="text/javascript" src="../scripts/jquery.js"></script> 
<script type="text/javascript" src="../scripts/cookie.js"></script> 
<script type="text/javascript" src="../scripts/toggleblock.js"></script> 
<script type="text/javascript"> 
<!-- 
$(function(){ 
$("table.CONTENT:eq(0)").TableToggle(2); 
}) 
//--> 
</script>

效果如图:

收缩:

初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能

展开:

初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能

PS: SageCRM是什么只支持IE7、 IE8的。所以这里的插件并没有测试浏览器兼容性。

Javascript 相关文章推荐
JS拖动技术 关于setCapture使用
Dec 09 Javascript
JS控制弹出新页面窗口位置和大小的方法
Mar 02 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
JavaScript中setTimeout的那些事儿
Nov 14 Javascript
Javascript前端经典的面试题及答案
Mar 14 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
js实现移动端轮播图效果
Dec 09 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
Jan 03 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
Jun 05 Javascript
非常有用的40款jQuery 插件推荐(系列二)
Dec 25 #Javascript
JS代码优化技巧之通俗版(减少js体积)
Dec 23 #Javascript
关于跨站脚本攻击问题
Dec 22 #Javascript
js DOM的学习笔记
Dec 22 #Javascript
jquery 年会抽奖程序
Dec 22 #Javascript
jQuery中创建实例与原型继承揭秘
Dec 21 #Javascript
jquery随机展示头像代码
Dec 21 #Javascript
You might like
第十一节 重载 [11]
2006/10/09 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
详解vue-router基本使用
2017/04/18 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
英语教研活动总结
2014/07/02 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
投标邀请书范本
2015/02/02 职场文书
七年级作文之冬景
2019/11/07 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers