在控制台中隐藏点击链接/Dom时出错

在控制台中隐藏点击链接/Dom时出错,dom,onclick,polymer,Dom,Onclick,Polymer,嗨,我的朋友们 我想在单击相同的单击foo链接时隐藏单击foo链接 我有以下代码: <dom-module> <div id="foo"> <a href="#" onclick="toggle_visibility('foo');">Click foo</a> </div> <script> Polymer({ is: 'test-file', t

嗨,我的朋友们

我想在单击相同的
单击foo
链接时隐藏
单击foo
链接

我有以下代码:

<dom-module>
    <div id="foo">
        <a href="#" onclick="toggle_visibility('foo');">Click foo</a>
    </div>

<script>
    Polymer({
        is: 'test-file',

        toggle_visibility: function(id) {
            var e = document.getElementById(id);

            if (e.style.display === "none") {
                e.style.display = "block";
            } else {
                e.style.display = "none";
            }
        });
</script>
</dom-module>
我想在单击
单击foo
链接时隐藏链接

有人能帮忙吗


提前感谢

在中,您通过在-+事件名称上使用
声明性地添加事件处理程序。因此,在您的情况下,这将是单击
,而不是单击
onclick

此外,您需要提供方法的名称,而不是调用它。所以你的a标签会变成这样:

<a href="#" on-click="toggle_visibility">Click foo</a>
更新:另请注意,如果您使用一种方法来查询要切换显示的元素,则很可能需要查询shadowDom,而不是文档级别。所以

var e = document.getElementById(id);
将成为:

var e = this.shadowRoot.getElementById(id);

在Polymer中,您可以使用-
+事件名称上的
声明性地添加事件处理程序。因此,在您的情况下,这将是单击
,而不是单击
onclick

此外,您需要提供方法的名称,而不是调用它。所以你的a标签会变成这样:

<a href="#" on-click="toggle_visibility">Click foo</a>
更新:另请注意,如果您使用一种方法来查询要切换显示的元素,则很可能需要查询shadowDom,而不是文档级别。所以

var e = document.getElementById(id);
将成为:

var e = this.shadowRoot.getElementById(id);