未找到自定义元素 javascript 函数
我试图理解 Polymer。显然,自定义元素是整个 ShaBang 的关键。我确实构建了一些,有些可以正常工作,有些我只是无法让它们按照我的意愿工作。
顺便说一句,我使用的是 0.5 版。为什么,只是因为我懒得改变。
这是我的问题。
我希望在单击链接时弹出 Paper-Dialog。当代码直接位于 Index.html 页面中时,它可以完美运行。但是当我将其包装为自定义元素时,它无法找到我的 Javascript 事件。
我在控制台中收到此错误:
“未捕获的 ReferenceError:toggleDialog 未定义”
我知道这是由于我不理解的东西。但我很难掌握 Polymer 的细节。
这是我尝试执行的操作的代码。
<polymer-element name="cvirt-reader" attributes="content" >
<template>
<a href="#" onclick="toggleDialog()">Read</a>
<div id="HelpDialog">
<paper-dialog id="dlgHelper" heading="Bottom Dialog" transition="paper-dialog-transition-bottom">
<a href="#"><IMG src="/cvirtAnimee.gif"></a>
<paper-button label="Fermer" affirmative autofocus></paper-button>
</paper-dialog>
</div>
</template>
<script>
Polymer('cvirt-reader', {
toggleDialog: function(e) {
this.$.dlgHelper.toggle();
}
});
</script>
</polymer-element>
更简单的答案
聚合物提供 on-&lt;事件名称&gt; 属性:
532345904
nofollow noreferrer“>声明事件映射
将您的元素的方法绑定到事件的方法。
只要您正确地命名属性,它就应该处理任何事件;聚合物将完成其余的。
原始答案
我认为您无法将
onClick
属性设置为一个函数在全球范围中。也许您应该尝试使用
Ready
函数(
read
)将侦听器绑定为
id
a
a
element ):
826149974
事实是:使用
onclick =“ toggledialog()”
您的浏览器将寻找
toggledialog
在全局范围中的函数虽然它确实是您的聚合物元素的属性,因此全局范围不存在,从而导致
Reference> Reference Error
。
通过从内部绑定事件侦听器
Ready
功能,您需要的所有内容都是可以从当前范围访问的,也就是说:您可以通过
找到
toggledialog
this
并将其添加为事件侦听器。
494875693
从
onclick="toggleDialog()" 中删除 ()
如果像这样编写应该可以工作:
on-click="toggleDialog"