初学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 相关文章推荐
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
Apr 20 Javascript
Use Word to Search for Files
Jun 15 Javascript
奉献给JavaScript初学者的编写开发的七个细节
Jan 11 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
jquery实现简单的无缝滚动
Apr 15 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
json数据处理及数据绑定
Jan 25 Javascript
详解angularjs的数组传参方式的简单实现
Jul 28 Javascript
bootstrap fileinput实现文件上传功能
Aug 23 Javascript
Vue Promise的axios请求封装详解
Aug 13 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 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
通过PHP简单实例介绍文件上传
2015/12/16 PHP
Symfony核心类概述
2016/03/17 PHP
PHP中的self关键字详解
2019/06/23 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
childNodes.length与children.length的区别
2009/05/14 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python文件读写常见用法总结
2019/02/22 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
材料成型专业个人求职信范文
2013/09/25 职场文书
人事助理岗位职责
2013/11/18 职场文书
教师实习自我鉴定
2013/12/18 职场文书
C++程序员求职信范文
2014/04/14 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
师德标兵事迹材料
2014/12/19 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL