首页 文章

如何在Polymer 1.0中监听元素的事件?

提问于
浏览
6

我想在不制作自定义元素或模板的情况下使用Polymer的UI元素(例如,铁图标,纸张按钮等) .

例如,假设我有:

<paper-button id="my-button">Click me</paper-button>

我该如何收听“点击”事件?只需添加一个事件监听器来“点击”ID“我的按钮”就不起作用了 .

3 回答

  • 1

    它应该工作吗?我假设你想在主文档(index.html)中使用Polymer UI元素,而不必创建任何自定义组件 . 说你有

    <paper-button id="btn">Click me</paper-button>
    

    在index.html中 . 通过vanilla js,

    document.querySelector("#btn").addEventListener("click", function (e) {...});
    

    并通过jQuery,

    $("#btn").on("click", function (e, u) {...});
    

    p / s:我会写一个快速的jsbin作为演示,但是rawgit似乎有问题,而且我不知道托管Polymer Elements的替代CDN .

    Let me be clear: Polymer elements, and by extension web components, are designed to be framework-agnostic and, if properly coded, will work on their own - just like any other HTML element. 请不要为了dom绑定而进行dom-bind . 你 only 这样做,如果你a)要求聚合物's sugaring (like data-binding) in your use-case; and b) you want to use Polymer'从你的 index.html 含糖 - 如果你不为你的应用添加额外的复杂性 .

    我找到了一个cdn服务聚合物元素,所以:

    Look, no dom-bind and elements are working with vanilla js.

    Look, no dom-bind and elements are working with jQuery.

  • 6

    你可以试试:

    <template is="dom-bind" id="t">
    <paper-button id="my-button" on-click="buttonClicked">Click me</paper-button>
    </template>
    
    <script>
    var template = document.querySelector('#t');
    template.buttonClicked= function () {
    				alert("he clicked me :)");
    
    			};
    </script>
    
  • 3
    $( "body" ).delegate( "#my-button", "click", function() {
       alert();
    });
    

相关问题