Виджет Checkboxradio в Jquery Mobile не может отображаться при его динамическом создании

HTML-код.

<div data-role="panel" data-theme="b" id="locationPanel" data-position="right" data-dismissible="true" data-display="overlay">
</div>

JS-код

$("#trackSearch").click(function () {
    if (!loginFlag) {
        $("#toggleLogin").click();
        return false;
    }

    $.ajax({
        url: '/vehicleAlarm/vehicle/nodeByUser',
        type: 'get',
        cache: false,
        dataType: 'json',
        success: function (data) {
            if (data.company) {

            $("#locationPanel").empty();

            var rootStr ="<div data-role='collapsible' id='testcol'  data-collapsed='true'><h3>test</h3><div data-role='fieldcontain'>  <fieldset data-role='controlgroup'><input type='checkbox' name='checkbox-1a' id='checkbox-1a'   class='custom' /><label for='checkbox-1a'>  Cheetos</label><input type='checkbox' name='checkbox-2a' id='checkbox-2a'   class='custom' /><label for='checkbox-2a'>  Doritos</label><input type='checkbox' name='checkbox-3a' id='checkbox-3a'   class='custom' /><label for='checkbox-3a'>  Fritos</label><input type='checkbox' name='checkbox-4a' id='checkbox-4a'    class='custom' /><label for='checkbox-4a'>  Sun Chips</label>   </fieldset></div></div>"

            $("#locationPanel").append(rootStr);

            $("#testcol").collapsible();

            $("input[type=checkbox]").checkboxradio().checkboxradio('refresh');

            $("#locationPanel").panel("open");

            $("#testcol" ).on( "collapsibleexpand", function( event, ui ) {
                console.log("testexpand2");
            });
            }
        }
    });
});

При нажатии кнопки панель показывает, а виджет checkboxradio показывает, что исходный стиль html не может быть отображен с помощью jqm. Кто-нибудь может мне помочь? .. спасибо


person Clover Wu    schedule 10.09.2013    source источник
comment
для динамического добавления элементов на панели используйте $.mobile.activePage.trigger('pagecreate'); удалите этот $("input[type=checkbox]").checkboxradio().trigger('create');, он вам не нужен. проверьте это stackoverflow.com/questions/18515365/   -  person Omar    schedule 10.09.2013
comment
Демонстрация jsfiddle.net/Palestinian/GyPXd   -  person Omar    schedule 10.09.2013
comment
Привет. проблема рендеринга была решена.   -  person Clover Wu    schedule 11.09.2013
comment
Измените это $("#testcol" ).on( "collapsibleexpand", function( event, ui ) { на это $(document).on('expand', '#testcol', function() {.   -  person Omar    schedule 11.09.2013