当前位置: 首页 > 知识库问答 >
问题:

Angular2 svg应用于错误的元素-传递xpath?

戎泰
2023-03-14

创建一个Angular2甜甜圈组件:

组件的HTML:

    <template  ngFor [ngForOf]="items" let-item let-i="index">
        <path  [attr.d]="item.d"
               (click)="segmentClick(i)"
               (mouseover)="segmentMouseOver(i)"
               [attr.fill]="item.color"                       
              /></template>

组件的.ts代码:

segmentMouseOver(i) {
        document.getElementsByTagName('path')[i].style.fill = this.items[i].highlight;
}

当我只在我的主index.html上使用一次时,它的效果相当好。问题是当我在同一个页面上有多个这样的页面时。假设一个页面中有三个组件,onmouseover在第二个或第三个组件上对第一个组件进行修改!我认为这是因为getElementsByTagName('path ')选择了第一个组件的路径。

所以,重点是如何选择要应用的特定组件..我尝试了使用文档。通过设置第一个blah_=xpath来计算(blah_,blahU,blah _,blah,_),但evaluate()不包含.style方法。。

欢迎任何帮助!

共有1个答案

廖君昊
2023-03-14

试试这个 :

 <template  ngFor [ngForOf]="items" let-item let-i="index">
        <path  [attr.d]="item.d"
               (click)="segmentClick(i)"
               (mouseover)="segmentMouseOver($event,i)"
               [attr.fill]="item.color"                       
              /></template>

ts:

segmentMouseOver(event,i) {
       event.currentTarget.style.fill = this.items[i].highlight;
}
 类似资料:
  • 问题内容: 我正在定义JSON文件中的项目列表,并将该列表显示在网页上。目的是让用户单击该列表中的任何项目以显示有关该项目的更多信息(保存在同一JSON文件中的信息)。 该列表的所有项目都是同一类的成员,并且每个项目都有一个从JSON文件定义的唯一ID。HTML看起来像这样: 我打算使用一些类似的方法 与 但我不确定如何将ID从事件侦听器传递到打印功能,以确定要打印的详细信息。 我在HTML /

  • 我想将包含两个4x4矩阵的统一缓冲区对象传递给顶点着色器。我在C中声明了结构,如下所示: 在GLSL中: 但是,一旦我在UBO结构中声明了多个成员,一些对象就会由于错误的viewProjection矩阵而绘制错误。如果我注释掉PerRenderUBO结构和GLSL声明中的“projection”数据成员,所有内容都会正确渲染(尽管我甚至没有在着色器中使用投影) 这让我相信数据对齐肯定有问题。我已经

  • 问题内容: 我有一个元素。如何将CSS样式应用于此元素的所有子元素?我只想将样式应用于子元素。不是它的大孩子。 我可以用 这对所有孩子都有效,但我想对所有孩子都适用的解决方案。我以为我可以用,但是 不起作用。 编辑 该选择不使用Firefox 26应用规则,并有根据萤火没有其他规则的保证金。如果我替换为,它会起作用。 问题答案: 这些子元素的后代将(可能)继承分配给那些子元素的大多数样式。 您需要

  • 问题内容: 我想创建一个指令来组织按日期分组的显示数据。我还希望能够指定将显示各个行的指令。在一个完美的世界中,它看起来像这样(但又漂亮又漂亮) 这显然是行不通的,因此,如果您有更好的方法,请告诉我,但我希望能够按照以下方式做点事情: 然后像这样使用它: 我知道这很丑陋(并且不起作用,但是我敢肯定我可以通过一些调整使其工作),所以我真正要问的是,有没有更好的方法来做到这一点? 问题答案: 这个问题

  • 问题内容: 是否可以为元素定义CSS样式,仅在匹配的元素包含特定元素(作为直接子项)时才适用? 我认为最好用一个例子来解释。 注意 :我正在尝试设置 父元素的样式 ,具体取决于其包含的子元素。 注意2 :我知道我可以使用javascript来实现,但是我只是想知道是否可以使用一些(对我而言)未知的CSS功能。 问题答案: 据我所知,基于子元素设计父元素的样式不是CSS的可用功能。您可能需要为此编写

  • Web 应用可能由下面几部分组成: Servlet JSP™ 页面 工具类 静态文档 (HTML, 图片, 声音, 等等.) 客户端 Java applet, bean, 和 类 结合上述所有要素的描述性的元信息