javascript - 将点击高亮(CSS 类)复制到多个 SVG 中的相应元素
问题描述
我有两个具有相同元素的 SVG。当我单击 SVG1 上的元素时,它通过切换 CSS 类突出显示。我希望自动突出显示 SGV2 上的相同元素(注意:稍后,我希望能够通过单击 SVG2 来更改 SVG2 上突出显示的内容)。
我试过制作一个转换表,所以当我使用 getElementById 捕获 SVG1 点击时,该 ID 将转换为 SVG2 上的相应 ID,然后应用 CSS 类,但这不起作用。关于我应该如何做到这一点的任何建议?
这是一个 JSfiddle - https://jsfiddle.net/scottmclaughlin/gynzou0t/21/
// changes colour of the clicked element
function highlighter () {
var ellipses = document.getElementById(this.id);
ellipses.classList.toggle("keyHighlight");
// also duplicate highlight on second svg
let duplicateEllipses = (ellipses) => translateTable[ellipses];
duplicateEllipses.classList.toggle("keyHighlight1");
}
不相关,SVG 应该并排,但由于某种原因列/行 CSS 不正确。
解决方案
ellipses
是一个元素而不是一个id,你的duplicateEllipses
用法很奇怪,它被定义为一个函数,但用作一个元素。我认为你应该做的逻辑方式是这样的:
let duplicateEllipses = document.getElementById(translateTable[this.id]);
duplicateEllipses.classList.toggle("keyHighlight1");
推荐阅读
- php - 使用 XMLreader 读取和解析大型 XML 文件。空值问题
- php - 将 PHP 变量导入 jQuery Ajax 的语法
- spring - @RequestBody 下的映射字段
- javascript - 为 React 函数组件创建一个新的 MobX 存储实例
- powerbi - Power BI DAX - 如何使用开关功能显示两个选定的值
- html - 如何避免使用锚点将我带到页面顶部?
- javascript - Javascript/Node 文件上传;req.files == null 或未定义
- javascript - 我将如何访问特定值
- 使用事件目标属性的元素?
- python-3.x - 为什么这个 python 代码显示错误来检查回文号?
- image - 运行时 Flutter 高效的图像加载