Я пытаюсь создать коробку с коллабелем, в которой будет создана контрольная группа элементов, которые можно фильтровать. Материал внутри контрольной группы должен быть динамически получен из результатов базы данных. Проблема в том, что он не выводит его. Мне удается сделать работу контрольной группы вне складной коробки, но не внутри нее. Это не покажет никаких результатов.добавить динамически фильтруемую контрольную группу внутри разборчивого jquery-mobile
HTML:
<div data-role="collapsible" id="collapsible_box">
<form>
<input type="text" data-type="search" id="filter_input" placeholder="search content...">
</form>
<form data-role="controlgroup" data-filter="true" data-filter-reveal="true" data-input="#filter_input" id="list_of_results">
<!--here we get dynamically results from database-->
</form>
</div>
JAVASCRIPT: получение данных с помощью Ajax ответ. называется «pagebeforeshow» -event.
var data = response;
var out = "";
for(var i=0; i < data.result.length; i++) {
out += '<input type="radio" name="result" id="' + data.result[i].name + '" value="' + data.result[i].name + '">';
}
//add output to the page
$("#list_of_results").html(out).enhanceWithin().controlgroup("refresh");
Я получаю эту ошибку:
Uncaught Error: cannot call methods on controlgroup prior to initialization; attempted to call method 'refresh'
Я получаю эту ошибку «Неиспользуемая ошибка: не может вызывать методы в группе управления до инициализации; попытался вызвать метод 'refresh' " Я вызываю функцию javascript в методе pagebeforeshow. –
@ J-ho, я изменил кодировщик, чтобы использовать pagebeforeshow, и он все еще работает нормально. Можете ли вы отредактировать код, чтобы воспроизвести ошибку? – ezanker
Если я просто делаю '$ (" # list_of_results "). Html (out) .enhanceWithin();' он показывает результаты, но не обновляет его при попытке их фильтровать. Если я все же поставил '$ (" #list_of_results ") .html (out) .enhanceWithin(). controlgroup (" refresh "). filterable (" refresh ");', он ничего не показывает, и я не получаю даже ошибки .. –