简体   繁体   English

在Polymer元素中使用JavaScript

[英]Using JavaScript in Polymer element

I have an object of polymer: 我有一个聚合物的对象:

<newfolder-element id="newfolderelement" popupStyle="width: 362px; height: 100px;">
    <span class="title">Utwórz nowy folder</span>
    <input type="text" class="ginput" style="width: 350px; padding: 5px;" placeholder="Nowy katalog" />
    <br />
    <button class="action blue"><span class="label">Utwórz</span></button>
    <button class="action red" id="cancelBtn"><span class="label">Anuluj</span></button>

        <script type="text/javascript">
            ...
        </script>

</newfolder-element>

I want to access dom elements in javascript, I tried this: 我想访问javascript中的dom元素,我尝试了以下操作:

<script type="text/javascript">

                    Polymer('newfolderelement', {
                        domReady : function(){
                            $(this.shadowRoot.querySelector("#cancelBtn")).on('click', '#cancelBtn', function(){
                                console.log("clicked");
                            });
                        }
                    });
</script>

And this: 和这个:

<script type="text/javascript>
                    $(this.shadowRoot.querySelector("#cancelBtn")).on('click', '#cancelBtn', function(){
                        console.log("clicked");
                    });

</script>

And this: 和这个:

<script type="text/javascript>
                    $("#cancelBtn").click(function(){
                        console.log("clicked");
                    });

</script>

But all of above doesn't work. 但以上所有方法均无效。 How to access dom elements inside polymer object ? 如何访问聚合物对象内部的dom元素?

Why do you want to use jQuery, the Polymer already provides that functionality to you: 为什么要使用jQuery,Polymer已经为您提供了该功能:

  • to access DOM elements use the $ map of the element, ie to get reference to the #cancelBtn use 要访问DOM元素,请使用元素的$映射 ,即获取对#cancelBtn使用的引用

    this.$.cancelBtn 这一点。$。cancelBtn

  • to add an eventhandler use declarative event mapping , ie to add an click handler to the button 使用声明性事件映射添加事件处理程序,即向按钮添加点击处理程序

<button class="action red" id="cancelBtn" on-click="{{cancelClicked}}"></button>

and just add method cancelClicked to your component's script section. 只需将方法cancelClicked添加到组件的脚本部分。

  <script>
    Polymer('newfolder-element', {
      cancelClicked: function() {
         // do something
      }
    });
  </script>

This is much simpler and your component won't require additional library. 这要简单得多,并且您的组件不需要其他库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM