gpt4 book ai didi

javascript - polymer 点击事件未触发

转载 作者:数据小太阳 更新时间:2023-10-29 04:24:43 26 4
gpt4 key购买 nike

目前我正在尝试使用 Polymer。现在我有一个简单的页面,上面有一个纸按钮,但我无法为其注册点击事件。我试过这段代码:

<paper-button raisedButton 
id="test"
class="colored"
label="Click"
link="http://twitter.com"
on-click="{{ goLink }}">
</paper-button>

<script>
Polymer('#test', {
goLink: function(e)
{
window.location.href = e.target.getAttribute('link');
}
});
</script>

点击事件没有被触发。代码有什么问题?第二个问题:我应该在代码中使用 on-click 还是 on-tab

最佳答案

您不能通过简单地使用某个任意元素的 id 调用 Polymer() 函数来定义 Polymer 组件。要么你需要 create a Polymer element包含按钮和处理程序代码,如下所示:

<body unresolved>

<polymer-element name="link-button">
<template>
<paper-button raisedButton id="test" class="colored"
label="Click" link="http://twitter.com"
on-click="{{ goLink }}">
</paper-button>
</template>
<script>
Polymer('link-button', {
goLink: function(e) {
window.location.href = e.target.getAttribute('link');
}
})
</script>
</polymer-element>

<link-button></link-button>

</body>

或者您需要将按钮包装在 auto-binding template 中:

<body unresolved>

<template id="bind" is="auto-binding">
<paper-button raisedButton id="test" class="colored"
label="Click" link="http://twitter.com"
on-click="{{ goLink }}">
</paper-button>
</template>

<script>
var bind = document.querySelector('#bind');
bind.goLink = function(e) {
window.location.href = e.target.getAttribute('link');
}
</script>

</body>

在第一个版本中,如果将硬编码链接(可能还有一些其他值)转换为属性,则可以创建可重用的 link-button 元素。

顺便说一句。您可以使用“点击”或“点击”。当您用鼠标单击按钮时,会触发这两个事件。

编辑:

如果你想要的只是花哨的纸质按钮,你可以通过简单地向元素添加一个事件监听器而无需任何 Polymer 特定编程:

<paper-button raisedButton id="test" class="colored"
label="Click" link="http://twitter.com">
</paper-button>

<script>
document.querySelector('#test').addEventListener('click', function(e) {
window.location.href = e.target.getAttribute('link');
})
</script>

但我认为,如果您只关注 Polymer 的组件消费者端,您会错过它的很多功能(以及一般的 Web 组件)。

关于javascript - polymer 点击事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25226917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com