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