js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色

实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色的过程分为以下几步:

  1. HTML结构构建

先构建一个table,需要注意每个单元格需要有一个唯一的id值,如下所示:

<table id="myGridview">
  <thead>
    <tr>
      <th>ID</th>
      <th>名称</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody>
    <tr id="row1">
      <td>1</td>
      <td>测试1</td>
      <td><button>编辑</button></td>
    </tr>
    <tr id="row2">
      <td>2</td>
      <td>测试2</td>
      <td><button>编辑</button></td>
    </tr>
    <tr id="row3">
      <td>3</td>
      <td>测试3</td>
      <td><button>编辑</button></td>
    </tr>
  </tbody>
</table>
  1. CSS样式定义

定义表格的CSS样式,如下所示:

#myGridview {
  border-collapse: collapse;
  width: 100%;
  font-size: 14px;
  font-family: Arial, sans-serif;
}

#myGridview th, #myGridview td {
  border: 1px solid #ccc;
  padding: 8px;
  text-align: center;
}

#myGridview th {
  background-color: #f2f2f2;
}

#myGridview tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

#myGridview tbody tr:hover {
  background-color: #f2f2f2;
}

#myGridview tbody tr.selected {
  background-color: #d9edf7;
}

#myGridview tbody tr.selected:hover {
  background-color: #bce8f1;
}
  1. JS实现交替行、选中行、鼠标移动行背景色效果

为了保证只有一行被选中,需要使用一个变量来保存当前被选中的行的id,代码如下所示:

var selectedRowId = null;

接下来,在表格的每一行上都绑定一个click事件和mouseover事件,用于处理交替行和选中行的效果,代码如下所示:

var rows = document.querySelector("#myGridview tbody").rows;

for (var i = 0; i < rows.length; i++) {
  rows[i].addEventListener("click", function() {
    // 取消原来选中的行的选中状态
    if (selectedRowId) {
      document.querySelector("#" + selectedRowId).classList.remove("selected");
    }
    // 设置当前行的选中状态
    this.classList.add("selected");
    selectedRowId = this.id;
  });

  rows[i].addEventListener("mouseover", function() {
    // 取消原来选中的行的选中状态
    if (selectedRowId) {
      document.querySelector("#" + selectedRowId).classList.remove("selected");
    }
    // 设置当前行的选中状态
    this.classList.add("selected");
    selectedRowId = this.id;
  });
}

在鼠标离开行时,需要将其选中状态取消,代码如下所示:

for (var i = 0; i < rows.length; i++) {
  rows[i].addEventListener("mouseout", function() {
    if (this.id !== selectedRowId) {
      this.classList.remove("selected");
    }
  });
}

这样就可以实现交替行、选中行、鼠标移动行背景色效果了。

示例1: 点击行,该行背景色变为蓝色,其他行背景色恢复默认,代码演示:https://codepen.io/tianhenglin/pen/JjPRQgN

示例2: 鼠标悬停行,该行背景色变为灰色,鼠标移出行,该行背景色恢复默认,其他行背景色恢复默认,代码演示:https://codepen.io/tianhenglin/pen/zYzQwNg

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 深入理解JavaScript内置函数

    深入理解JavaScript内置函数攻略 前言 JavaScript是一门强大的编程语言,它提供了大量的内置函数库,方便我们处理各种数据类型和操作。深入理解JavaScript内置函数的使用方法和原理,可以提升我们编程的效率和精度。 内置函数分类 JavaScript内置函数大致可以分为以下几类: 数组函数 字符串函数 数字函数 日期函数 数学函数 数组函数…

    JavaScript 2023年5月18日
    00
  • 纯JS实现出生日期[年月日]下拉菜单效果

    下面是详细讲解纯JS实现出生日期[年月日]下拉菜单效果的攻略: 1. HTML结构 首先,我们需要在HTML页面中创建一个select元素,有3个下拉菜单选项分别代表出生日期的年、月、日。 <select id="year"></select> <select id="month">…

    JavaScript 2023年6月10日
    00
  • javascript实现简单打字游戏

    下面我将详细讲解JavaScript实现简单打字游戏的完整攻略。 思路 我们可以通过JavaScript来实现简单的打字游戏。具体而言,我们可以按照以下思路来实现: 首先,我们需要准备一些字符串,这些字符串将作为打字游戏的关键词。这些字符串可以存在一个数组里。 接下来,我们需要一个计时器,用来计算打字游戏进行的时间,同时,计算玩家最后得分。这里我们可以使用s…

    JavaScript 2023年5月28日
    00
  • javascript生成/解析dom的CDATA类型的字段的代码

    要生成/解析包含CDATA类型的字段,我们需要使用Javascript中的 DOM 操作。下面是生成CDATA类型字段的完整攻略: 生成CDATA类型字段的代码 步骤1:创建一个包含CDATA类型字段的元素 我们可以使用 Document.createElement() 方法创建一个新的元素,然后使用 Document.createCDATASection(…

    JavaScript 2023年6月10日
    00
  • Javascript处理DOM元素事件实现代码

    当我们需要在网页中添加交互功能时,JavaScript 处理 DOM 元素事件是必须掌握的技能。在接下来的回答中,我将介绍完整的攻略,帮助你学会如何使用 JavaScript 处理 DOM 元素事件。 什么是事件? 在编写网页时,事件是指用户操作网页时所触发的动作。例如,当用户点击一个按钮,就会触发 click 事件;当用户将光标移动到一个元素上时,会触发 …

    JavaScript 2023年6月11日
    00
  • Javascript 类型转换、封闭函数及常见内置对象操作示例

    针对“Javascript 类型转换、封闭函数及常见内置对象操作示例”的完整攻略,以下是详细的讲解: 一、Javascript类型转换 Javascript是一门动态类型语言,其变量类型的值可以根据上下文自动判断,可以进行隐式转换,也可以手动进行显式转换。 1. 隐式转换 在Javascript中,隐式类型转换是将一种类型的数据转换为另一种类型的数据,且数据…

    JavaScript 2023年5月27日
    00
  • js选择并转移导航菜单示例代码

    下面是js选择并转移导航菜单的攻略。首先我们需要明确一下我们需要做的事情,即从一个导航菜单中选择若干个元素,并将这些元素转移至另一个导航菜单中。具体实现步骤如下: 1. 准备工作 首先在HTML文档中,我们需要准备两个导航菜单的容器元素,以及一个按钮元素用于触发选中操作。例如,我们可以按照以下代码编写容器元素: <div class="con…

    JavaScript 2023年6月11日
    00
  • JavaScript 学习点滴记录

    JavaScript 学习指南 前言 JavaScript 是一种脚本语言,普遍应用于 Web 开发中。JavaScript 是一种动态的、弱类型解释性语言,并且具有多范式的特性,如面向对象、命令式、声明式等。 在学习 JavaScript 的过程中,我们需要学习它的基本语法和常见的应用。随着学习的深入,我们可以从以下几个方面来拓展自己的知识面: 前端框架和…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部