<a>多颜色标签点击之后保持原色的一次实践, Ext Panel下解决及通用方案思路
代码为片段, 需要自行设置全部环境方可全部运行.
案例背景
- 使用Ext开发了一个表格,需要根据一列值来动态设置颜色. 效果如下:
- 说明: 不同行显示不同的内容, 作为标题行, 可以点击链接到其他地方.
- 相应的代码如下
if (record.data.OQMYWGWJSFX <= 0) {
return Ext.String.format("<a class='company-link' href='#' onclick='Win_DataSources_Show(\"" + record.data.OrgID + "\")'>{0}</a>", record.data.OrgName);
}
else {
return Ext.String.format("<a class='company-link' href='#' style='color:red' onclick='Win_DataSources_Show(\"" + record.data.OrgID + "\")'>{0}</a>", record.data.OrgName);
}
关键在于<a> 链接点击之后默认会变色,可以通过伪类的方式去修改。例如:
a:link { text-decoration: none; color: Black; }
a:active { text-decoration: blink; }
a:hover { text-decoration: underline; }
a:visited { text-decoration: none; }
问题来了, 如何保证红色链接点击之后还是红色, 黑色的链接点击之后还是黑色呢?
- 网络搜索后发现很多人有同样的问题,思路无非2种:
- CSS 支持相应的伪类,可以保持原本的颜色不变。 找啊找,没找到,此路不通。
- 通过onclick事件,给当前
<a>标签赋相应颜色属性。 - 变通方式 本例中,发现链接是
#即当前页的的页面顶部,索搜索中发现还有另外一种方式就是href='javascript:void(0)'这种方式是空链接,
解决方法的总结
href 变更法。
javascript:void(0)方式可以屏蔽跳转作用,也就是说从href = '#'=>href = 'javascript:void(0)'之后可以保持原本的颜色不变。
render函数触发强制颜色变更.
- 在使用render时生成的链接设置出发在最后,比伪类定义的还要晚。 本例中的代码:
Ext.String.format("<a class='company-link' href='#' style ='color:gray' 。。。Ext中的render也是采用js的方式实现,
总结
- 回归标题,如何使多颜色的
<a>标签点击之后保持原色,本例中如果是通用的网页, 且在当前页,可以使用javascript:void(0)来替换'#'完成页面的重新定向。 - 如果在
Ext框架下可以使用列的Render事件定义,完成逻辑定义 - 更通用的情况,普通网页不同颜色跳转的方式,目前没有遇到,我想到的解决路径就是:
- 定义不同颜色的
<a>标签为不同class,这样在配合伪类使用的过程中,可以采用.class a:visited的方式去过滤显示与原本的颜色相同。 - 使用属性选择器
<a>[color:red]:visited这样的方式去定义访问之后的颜色。
如上通用的办法未验证,有知道的,或感兴趣可自行尝试。
- 定义不同颜色的
<a>多颜色标签点击之后保持原色的一次实践, Ext Panel下解决及通用方案思路的更多相关文章
- 怎么用js设置a标签点击链接改变当前颜色
怎么用js设置a标签点击链接改变当前颜色 20 例如:多个a标签为白色,当点击其中一个a标签时改变那一个a标签的字体颜色为黄色,并且跳转到对应链接,当点击下一个a标签链接时,下一个为黄色,之前一个恢复 ...
- leangoo更换背景、设置颜色标签功能上线啦!
leangoo看板背景太单调?卡片标签想要添加多个?没有问题,Leangoo的本次更新就给大家带来了漂亮背景和实用的颜色标签设置,接下来就让我们一起来看看吧! 设置背景: 点击看板右上角个人头像图标按 ...
- a标签点击跳转失效--IE6、7的奇葩bug
一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...
- 简单的JS控制button颜色随点击更改
先上效果图: 默认“今日”是选中状态,是行内样式: <button type="button" id="today" class="btn-li ...
- 深入A标签点击触发事件而不跳转的详解
本文介绍下,当点击A标签时,触发事件但不跳转的实现方法,有需要的朋友参考下吧. 点击页面上的空链接,点击后页面自动刷新,并会定位到页面顶端. 不过,有时需要点击#页面但不作跳转,可以这样写: < ...
- 解决IE下a标签点击有虚线边框的问题
解决IE下a标签点击有虚线边框的问题 关键词:IE去除虚线边框.IE解决a标签虚线问题 先看看IE下,a标签出现的虚线边框问题: (上面中,红线包裹的就是一个翻页的按钮,按钮实际是hml的a标签做的, ...
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- a标签点击不跳转的几种方法
a标签点击不跳转的几种方法 1.onclick事件中返回false <a href="http://www.baidu.com" onclick="return f ...
- 基础选择器,长度与颜色,标签display,嵌套关系,盒模型,盒模型布局
css基础选择器 # *(统配选择器): 控制html, body,以及body下所有用于显示的标签 # div(标签选择器): 该标签名对应的所有该标签 # .(class选择器)(eg: .div ...
随机推荐
- [Objective-c 基础 - 3.3] @property属性详解
ARC 自动引用计数 ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误. 同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存. 总是通过属性来 ...
- $().each 和 $.each() 两个方法的区别
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法.两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点. $().each,对于这个方法,在d ...
- 爬去知乎百万用户信息之UserTask
UserTask是获取用户信息的爬虫模块 public class UserManage { private string html; private string url_token; } 构造函数 ...
- Java中的二维数组
Java 中的二维数组 所谓二维数组,可以简单的理解为是一种"特殊"的一维数组,它的每个数组空间中保存的是一个一维数组. 那么如何使用二维数组呢,步骤如下: 1. 声明数组并分配空 ...
- Mysql 存储过程、函数、触发器和视图的权限检查
当存储过程.函数.触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL将 ...
- 【47】请使用traits classes表现类型信息
1.考虑下面的需求,对迭代器移动d个单位.因为不同类型的迭代器,能力不同,有的迭代器(vector,deque内置迭代器)可以一步到位移动到指定位置,有的迭代器(list内置迭代器)必须一步一步移动, ...
- hdu 5459 Jesus Is Here 数学
Jesus Is Here Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
- shell修改文件名(二)
我想修改类似如下一批文件的文件名:AA01_01.txtAA01_02.txtAA01_03.txtAA01_04.txt 修改成BB02_01.txtBB02_02.txtBB02_03.txtBB ...
- [React Fundamentals] Development Environment Setup
In this lesson we'll setup a simple build process for converting our ES6 React components into ES5 u ...
- iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画
CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...