Динамическое создание списков продуктов с флажками в jQuery Mobile оказывается сложным

Я работаю над мобильным приложением списков покупок, которое должно поддерживать пользователя при создании списков покупок.

Я использую инфраструктуру Jquery Mobile для легкого достижения мобильных функций.

Это мой первый веб-проект с использованием HTML и JavaScript.

Я создал простой список продуктов с флажками, Jquery Mobile автоматически его стилизует, и сразу же он выглядит великолепно:

<form action="demoform.asp" id="list" method="post" name="list">
        <fieldset data-filter="true" data-input="#myFilter" data-role="controlgroup">
            <label for="0">Banane</label>
            <input id="0" name="products" type="checkbox">
            <label for="1">Gurke</label>
            <input id="1" name="products" type="checkbox">
            <label for="2">Brokkoli</label>
            <input id="2" name="products" type="checkbox">
            <label for="3">Chinakohl</label>
            <input id="3" name="products" type="checkbox">
            <label for="4">Grünkohl</label>
            <input id="4" name="products" type="checkbox">
            <label for="5">Eisbergsalat</label>
            <input id="5" name="products" type="checkbox">
        </fieldset>
    </form>

Затем я написал функцию javascript, которая принимает массив и записывает содержимое массива в следующем формате:

var options = [
        fruits = ['Banane','Gurke','Brokkoli','Chinakohl','Grünkohl','Eisbergsalat'],
        drinks = ['Wasser','Cola','Fanta','Sprite','Pils','Radler']
    ];

function makeUL(array) {
    // Create the list element:
    var list = document.createElement('fieldset');
    list.setAttribute("data-role", "controlgroup");
    list.setAttribute("data-filter","true");
    list.setAttribute("data-input","#myFilter");

    for(var i = 0; i < array.length; i++) {
        // Create the list item:
        var label = document.createElement('label');
        label.setAttribute("for",i);

        // Set its contents:
        label.appendChild(document.createTextNode(array[i]));

        // Add it to the list:
        list.appendChild(label);

        var input = document.createElement('input');
        input.setAttribute("type","checkbox");
        input.setAttribute("name","products");
        input.setAttribute("id",i);


        // Add it to the list:
        list.appendChild(input);
    }

    // Finally, return the constructed list:
    return list;
}

// Add the contents of options[0] to #productlist:
document.getElementById('productlist').appendChild(makeUL(options[0]));
Я столкнулся с несколькими проблемами, связанными с моей неопытностью, но это самая большая из них:JQuery Mobile берет HTML-код, который я пишу, и значительно меняет его при загрузке страницы. Когда я пытаюсь изменить html после того, как Jquery Mobile сделал свое волшебство, он выглядит нестандартно. Я должен как-то сказать Jquery Mobile снова запустить его скрипт для этого конкретного элемента. Как мне этого добиться, есть ли вообще лучший способ работы с Jquery Mobile?

Ответы на вопрос(1)

Ваш ответ на вопрос