Добавление «фильтра данных» True в коде для UL, но не отображается на странице - PullRequest
1 голос
/ 22 ноября 2011

Итак, я хочу добавить фильтр данных в UL, если есть определенное количество LI. Я получаю attr для правильного добавления, но на странице ничего не отображается.

 else
               {
                    $('#presentations').attr("data-filter", "true");
                        $('#presentations').html('');
                              for (var i = 0; i < results.rows.length; i++) {
                                       $('#presentations').append(
                                       '<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\';");">' + results.rows.item(i).presentName + '</a>'
                                    + '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>');
                                    }
                                   }
                                $('#presentations').listview('refresh');
                                $.mobile.changePage($('#dashboard'), {reloadPage: "true"} );
                                $('#dashboard .message').text('Your presentations');
                            }

Я предполагаю, что это проблема кеширования, но я не могу понять, как обойти это. Помощь

Ответы [ 2 ]

5 голосов
/ 24 ноября 2011

Я пытался повторно инициализировать, воссоздать или обновить список, но ничего из этого не работает.

Единственный способ заставить его работать - это:

    $('#listview').listview('option', 'filter', true);
    $('#listview').trigger("listviewcreate");

Таким образом, вы вручную запускаете событие listviewcreate, а перед этим устанавливаете фильтр в значение true. (настройка с attr(), data() or jqmData() также не работает)

Пример: http://jsfiddle.net/N7Z9e/143/

0 голосов
/ 26 ноября 2011

Вот код в действии - спасибо Герджан!

else {
             // don't create duplicate/double filter
             $(".ui-listview-filter").remove();
             if (results.rows.length > 3) { //Add filter search if more than 3 presentations.
                    $('#presentations').listview('option', 'filter', true);
             }
             $('#presentations').html('');
             for (var i = 0; i < results.rows.length; i++) {
                    $('#presentations').append(
                                '<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\');">' + results.rows.item(i).presentName + '</a>'
                             + '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>'
                );
            }
            $('#presentations').listview('refresh');
            $('#presentations').trigger("listviewcreate");
            $.mobile.changePage($('#dashboard'), { reloadPage: "true" });
            $('#dashboard .message').text('Your presentations');
            }
...