Jquery mobile listview - проверка инициализации завершена - PullRequest
13 голосов
/ 29 февраля 2012

Я закодировал свой путь в угол.

Мне нужно вызвать listview("refresh") в списке, однако, возможно, он не был инициализирован в момент, когда я вызываю метод обновления.

Есть ли способ проверить, был ли компонент инициализирован или нет?

Это ошибка, которую я получаю:

не может вызвать методы просмотра списка до инициализации

Ответы [ 4 ]

21 голосов
/ 29 февраля 2012

Когда виджет listview инициализируется, ему присваивается класс ui-listview, поэтому мы можем проверить этот класс, чтобы убедиться, что он был инициализирован:

//select the listview
var $myUL = $('#my-ul-element');

//add a list-item to the listview
$myUL.append('<li>I\'m New!</li>');

//check if the listview has the ui-listview class
if ($myUL.hasClass('ui-listview')) {

    //this listview has already been initialized, so refresh it
    $myUL.listview('refresh');
} else {

    //this listview has not yet been initialized, so it gets initialized
    $myUL.listview();//or you can use .trigger('create');
}

Это должно помочь устранить ошибкувы получаете.

Кроме того, функция .hasClass('[class]') возвращает true / false, если элемент имеет [class]: http://api.jquery.com/hasClass

4 голосов
/ 29 февраля 2012

Попробуйте

$list.listview();
$list.listview('refresh');
0 голосов
/ 20 декабря 2013

вы можете просто создать глобальную переменную

var is_mobile_init = false;

в верхней части ваших скриптов.затем установите его в true после включения jquery mobile.

, затем перед обновлением записи

if (is_mobile_init)
    $myUL.listview('refresh');

таким образом вам не нужно отслеживать все различные классы, и этоинтуитивное

0 голосов
/ 26 января 2013

Для меня решением этого сообщения было добавить data-role="listview" к моему ul элементу. Затем я мог бы использовать метод .listview('refresh') в моих обработчиках событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...