<link rel="import" href="bower_components/polymer/polymer.html">
<link rel="import" href="bower_components/paper-styles/paper-styles.html">
<link rel="import" href="bower_components/iron-icons/iron-icons.html">
<link rel="import" href="bower_components/paper-fab/paper-fab.html">
<link rel="import" href="bower_components/paper-spinner/paper-spinner.html">
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<dom-module id="paperfabtest-element">
<template>
<paper-spinner id="spinner" active></paper-spinner>
<BR><paper-fab id="second_button" mini icon="refresh" title="refresh" tabindex="0" class="cyan" onclick="spinner_stop()"></paper-fab>
</template>
<script>
var el;
Polymer({
is: "paperfabtest-element",
ready: function() {
el = this.$$("#spinner");
}
});
function spinner_stop() {
el.active=false;
}
</script>
</dom-module>
Стиль и некоторые ненужные коды удалены.
Этот локальный DOM получил бумажную фабрику, и он остановит счетчик при нажатии. Приведенные выше коды работают нормально.
По какой-то причине я использую классический способ «по щелчку» для запуска функции() для остановки счетчика, а не использую «по щелчку» и обработку событий внутри регистрации полимера.
Есть ли прямой способ выбрать этот "#spinner" внутри функции()?
Обновление:
Наконец-то я обнаружил, что код не работает, когда он находится внутри вызова jQuery.ajax
Есть идеи?
<script>
Polymer({
is: "My-element",
properties: {
spinner_obj: Object
},
updateData: function() {
this.$$("#spinner").active = true; //this will work
jQuery.ajax({
'async': true,
'global': false,
'cache': false,
'url': 'Some_URL',
'dataType': "json",
'beforeSend': function () {
},
'success': function (responseText) {
//Do Something
this.$$("#spinner").active = true; //this will promot for error
this.$.spinner.active = true; //this will promot for error
spinner_obj.active = false; //No error but no effect
}
});
},
ready: function() {
//Do something
spinner_obj = this.$$("#spinner");
this.updateData();
}
});
</script>