代码为片段, 需要自行设置全部环境方可全部运行.

案例背景

  • 使用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种:

解决方法的总结

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下解决及通用方案思路的更多相关文章

  1. 怎么用js设置a标签点击链接改变当前颜色

    怎么用js设置a标签点击链接改变当前颜色 20 例如:多个a标签为白色,当点击其中一个a标签时改变那一个a标签的字体颜色为黄色,并且跳转到对应链接,当点击下一个a标签链接时,下一个为黄色,之前一个恢复 ...

  2. leangoo更换背景、设置颜色标签功能上线啦!

    leangoo看板背景太单调?卡片标签想要添加多个?没有问题,Leangoo的本次更新就给大家带来了漂亮背景和实用的颜色标签设置,接下来就让我们一起来看看吧! 设置背景: 点击看板右上角个人头像图标按 ...

  3. a标签点击跳转失效--IE6、7的奇葩bug

    一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...

  4. 简单的JS控制button颜色随点击更改

    先上效果图: 默认“今日”是选中状态,是行内样式: <button type="button" id="today" class="btn-li ...

  5. 深入A标签点击触发事件而不跳转的详解

    本文介绍下,当点击A标签时,触发事件但不跳转的实现方法,有需要的朋友参考下吧. 点击页面上的空链接,点击后页面自动刷新,并会定位到页面顶端. 不过,有时需要点击#页面但不作跳转,可以这样写: < ...

  6. 解决IE下a标签点击有虚线边框的问题

    解决IE下a标签点击有虚线边框的问题 关键词:IE去除虚线边框.IE解决a标签虚线问题 先看看IE下,a标签出现的虚线边框问题: (上面中,红线包裹的就是一个翻页的按钮,按钮实际是hml的a标签做的, ...

  7. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  8. a标签点击不跳转的几种方法

    a标签点击不跳转的几种方法 1.onclick事件中返回false <a href="http://www.baidu.com" onclick="return f ...

  9. 基础选择器,长度与颜色,标签display,嵌套关系,盒模型,盒模型布局

    css基础选择器 # *(统配选择器): 控制html, body,以及body下所有用于显示的标签 # div(标签选择器): 该标签名对应的所有该标签 # .(class选择器)(eg: .div ...

随机推荐

  1. 转载 DNS查询流程简介

    转载请注明出处:http://blog.csdn.net/luotuo44/article/details/45545059 DNS(domain name system),读者们或多或少都听过,就是 ...

  2. position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?

    这是寒冬大神提出的一个题目,刚开始看到这题的时候完全不知道从什么地方回答起好,题目内容比较广泛,找不到针对点.后来我觉得这个题目应该能拆成几个点来回答:1.'display'.'position' 和 ...

  3. jquery 延迟加载代码

    <!--引入以下两个js文件--> <script type="text/javascript" src="./js/jquery.min.js&quo ...

  4. fastjson使用示例

    一.fastjson 一款Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括 ...

  5. cocos2d-x 将cocosbuilder输出文件映射成对象的原理

    转自:http://www.cnblogs.com/fox7nights/archive/2013/02/21/2920640.html 一.调用代码 CCNode* GameOverScene::l ...

  6. 12.1 文档相关 Webbrowser 该文档已被修改,是否保存修改结果

       附件:http://files.cnblogs.com/xe2011/Webbrowser_Document_IsModified.rar   该文档已被修改,是否保存修改结果?是:保存修改结果 ...

  7. 跟Android初学者分享几点经验

    刚学Android开发的人肯定想知道过来人是怎样入门的,有哪些经验,怎样能少走弯路.本文就跟大家分享一位Android开发者的入门经验,写的条理很清晰,真正讲出了自己的学习过程,尽管每个人的学习方法和 ...

  8. javascript 递归之 快速排序

    1. 快速排序思想 (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元素,都移到"基准"的左边:所有大 ...

  9. 阿里封神谈hadoop学习之路

    阿里封神谈hadoop学习之路   封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 s ...

  10. C#连接SQL SERVER数据库的详细步骤!

      首先,在SQL SEVER里建立一个名为“Exercise”的数据库名,在该数据库下建立一张名为“lianxi”的表.好,现在开始写代码. 在FORM1里拖一个DATAGIRDVIEW用于显示表, ...