Hallo,
ich möchte gerne ein Basic-Widget (multistate) anpassen , damit es kein Button, sondern ein Icon ist. Habe es dazu in eine eigene Datei (myButton.html) kopiert, und folgendermaßen modifiziert:
In der visu.js habe ich den Code von multistate ebenfalls kopiert, den Namen geändert und die Click-Funktion entfernt:
Es zeigt leider immer nur das img[0] an, es wird kein Update durchgeführt. Wo liegt mein Fehler?
ich möchte gerne ein Basic-Widget (multistate) anpassen , damit es kein Button, sondern ein Icon ist. Habe es dazu in eine eigene Datei (myButton.html) kopiert, und folgendermaßen modifiziert:
HTML-Code:
{% macro multi_symbol(id, item, val, img, type) %}
<span id="{{ uid(page, id) }}"
data-widget="myButtons.multi_symbol"
data-item="{{ item }}"
data-vals="{{ implode(val) }}"
data-img="{{ implode(img|deficon) }}"
data-value="3"
class="ui-{{ type|default('mini') }}"
data-inline="true"
data-iconpos="center">
<img class="icon" src="{{ img[0]|deficon('control_on_off.svg') }}"/>
</span>
{% endmacro %}
Code:
$.mobile.activePage.find('span[data-widget="MyButtons.multi_symbol"]').on( {
'update': function (event, response) {
event.stopPropagation();
// get list of values and images
list_val = $(this).attr('data-vals').explode();
list_img = $(this).attr('data-img').explode();
// get the index of the value received
idx = list_val.indexOf(response.toString());
// update the image
$('#' + this.id + ' img').attr('src', list_img[idx]);
}
});


Kommentar