首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将聚合物行为与子元素结合起来?

如何将聚合物行为与子元素结合起来?
EN

Stack Overflow用户
提问于 2016-12-20 11:50:35
回答 2查看 105关注 0票数 2

我在读关于聚合物中的行为的书。

我复制/粘贴了highlight-behavior.html的示例

代码语言:javascript
复制
<script>
HighlightBehavior = {

  properties: {
    isHighlighted: {
      type: Boolean,
      value: false,
      notify: true,
      observer: '_highlightChanged'
    }
  },

  listeners: {
    click: '_toggleHighlight'
  },

  created: function() {
    console.log('Highlighting for ', this, 'enabled!');
  },

  _toggleHighlight: function() {
    this.isHighlighted = !this.isHighlighted;
  },

  _highlightChanged: function(value) {
    this.toggleClass('highlighted', value);
  }

};

然后,在我的元素中,我有以下内容(只是重要的部分):

代码语言:javascript
复制
<link rel="import" href="highlight-behavior.html">

<dom-module id="highlighting-test">
  <template>
    <style>
        :host {
            display: block;
            background-color: red;
        }

        :host.highlighted {
            background-color: green;
        }

      .highlighted {
        background-color: green;
      }
    </style>

  <h1>Click anywhere here to toggle highlighting!</h1>
  </template>

  <script>
    Polymer({
      is: 'highlighting-test',
      behaviors: [HighlightBehavior]
    });
  </script>
</dom-module>

现在的问题是,当单击主机元素时,highlighted类的切换可以工作,但它不只是突出显示h1元素。它将highlighted类添加到主机元素中。

它在浏览器中的呈现方式如下:

代码语言:javascript
复制
<highlighting-test class="highlighted">
  <h1 class="style-scope highlighting-test">Click anywhere here to toggle highlighting!</h1>
</highlighting-test>

当单击时,我确实看到它在主机元素highlighting-test上切换了highlighting-test类,并且背景也发生了变化。

如何确保高亮显示行为仅应用于h1标记?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-20 15:15:41

使用this.toggleClass(className, bool, this.$.id_of_element)

票数 1
EN

Stack Overflow用户

发布于 2016-12-22 20:30:13

更改:

代码语言:javascript
复制
_highlightChanged: function(value) {
    this.toggleClass('highlighted', value);
}

至:

代码语言:javascript
复制
_highlightChanged: function(value) {
    this.$.hId.toggleClass('highlighted', value);
}

在HTML中,向H1添加一个ID:

代码语言:javascript
复制
 <h1 id="hId">Click anywhere here to toggle highlighting!</h1>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41241704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档