我正在阅读事件指南和指南的开头,它说:
您还可以使用语法nodeId.eventName为此。$集合中的任何元素添加事件侦听器。
什么是this.$
集合?
答案 0 :(得分:4)
this.$
包含从Automatic node finding创建的节点:
Polymer在其本地DOM中自动构建静态创建的实例节点的映射,以便方便地访问常用节点,而无需手动查询它们。在元素模板中使用
id
指定的任何节点都存储在this.$
哈希id
上。注意:使用数据绑定动态创建的节点(包括
dom-repeat
和dom-if
模板中的节点)不会添加到this.$
哈希中。哈希仅包括静态创建的本地DOM节点(即,元素的最外层模板中定义的节点)。
<head>
<base href="https://polygit.org/polymer+1.6.0/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
</head>
<body>
<x-foo></x-foo>
<dom-module id="x-foo">
<template>
<div id="div1">foo</div>
<div id="div2">bar</div>
<div id="div3">baz</div>
</template>
<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'x-foo',
ready: function() {
console.log('div1', this.$.div1.textContent);
console.log('div2', this.$.div2.textContent);
console.log('div3', this.$.div3.textContent);
}
});
});
</script>
</dom-module>
</body>
&#13;