2015-07-11 9 views
6

Desidero utilizzare gli elementi dell'interfaccia utente di Polymer (ad es. Icone di ferro, pulsante di carta, ecc.) Senza creare elementi o modelli personalizzati.Come si ascoltano gli eventi per gli elementi in Polymer 1.0?

Per esempio, diciamo che ho:

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

Come faccio ad ascoltare per l'evento 'click'? Semplicemente aggiungendo un listener di eventi a "clic" per l'ID "my-button" non funziona.

+0

Che codice hai scritto finora? Hai controllato i [documenti] (https://www.polymer-project.org/1.0/docs/devguide/events.html)? –

+0

Ho provato '$ ('my-button'). AddEventListener ('click', myFunc)' ma questo non funziona; sembra che il polimero stia ingoiando l'evento click in qualche modo? I documenti dicono come farlo se stai dichiarando un [nuovo ''] (https://www.polymer-project.org/1.0/docs/devguide/events.html), ma non sto facendo un nuovo modulo ... Voglio riutilizzare '', idealmente senza avvolgerlo in un nuovo modulo. – tigeroctopus

risposta

6

Dovrebbe funzionare? Suppongo che tu voglia utilizzare gli elementi dell'interfaccia utente di Polymer nel documento principale (index.html) senza dover creare componenti personalizzati. Supponi di avere

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

in index.html. Via js vaniglia,

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

e via jQuery,

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

p/s: mi piacerebbe scrivere un jsbin veloce come una demo, ma rawgit sembra avere problemi, e io non sono consapevole di CDN alternativi che ospitano Polymer Elements.

Vorrei essere chiaro: gli elementi di polimero e le componenti web di estensione sono progettati per essere indipendenti dal framework e, se opportunamente codificati, funzioneranno da soli, proprio come qualsiasi altro elemento HTML. Si prega di non dom-legare per il bene di dom-binding. È solo farlo se si a) richiede lo zuccheraggio del polimero (come l'associazione dati) nel proprio caso d'uso; e b) si desidera utilizzare lo zuccheraggio di Polymer dal tuo index.html - in caso contrario, non aggiungere ulteriore complessità alla tua app.

Ho trovato un CDN che servono elementi di polimeri, quindi:

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

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

+0

Probabilmente vorrai anche avvolgere il tuo codice in index.html in un tag ''. Vedi [qui] (https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-bind) per i dettagli. –

+1

No, è opzionale. Avvolgi con 'dom-bind' solo se vuoi usare lo zucchero di Polymer (ad es. Data-binding, osservatori, ascoltatori, on- * eventi, ecc.). I componenti Web sono generalmente progettati per funzionare da soli, come qualsiasi altro elemento HTML. – zerodevx

3

si può provare:

<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() { 
 
\t \t \t \t alert("he clicked me :)"); 
 

 
\t \t \t }; 
 
</script>

1
$("body").delegate("#my-button", "click", function() { 
    alert(); 
}); 
Problemi correlati