初学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 相关文章推荐
JAVASCRIPT对象及属性
Feb 13 Javascript
分析 JavaScript 中令人困惑的变量赋值
Aug 13 Javascript
js每次Title显示不同的名言
Sep 25 Javascript
My Desktop :) 桌面式代码
Dec 29 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
异步JavaScript编程中的Promise使用方法
Jul 28 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
May 24 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 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/10/27 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP时间处理类操作示例
2018/09/05 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
Vue中props的使用详解
2018/06/15 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
python如何变换环境
2020/07/21 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
应届生求职推荐信
2013/10/28 职场文书
门卫岗位安全职责
2013/12/13 职场文书
集团薪酬管理制度
2014/01/13 职场文书
劲霸男装广告词
2014/03/21 职场文书
服务口号大全
2014/06/11 职场文书
2014离婚协议书范文
2014/09/10 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
4种非常实用的python内置数据结构
2021/04/28 Python
基于Golang 高并发问题的解决方案
2021/05/08 Golang