JQuery Mobile: выбрать обновление меню true не работает на iOS

Я использую этот замечательный кусок кода:

function rebuildFilterDialogConditions(filterPopup, jsonArray) {
    for (var i = 0; i < jsonArray.filters.length; i++) {
        var filterSelect = $('select#' + jsonArray.filters[i].filterCode);
        var filterOptionsSelect = $('select#' + jsonArray.filters[i].filterCode + ' option');
        filterOptionsSelect.remove();
        filterSelect.append('<option value="default" selected="selected" disabled="disabled">' + jsonArray.filters[i].filterName + '</option>');

        for (var j = 0; j < jsonArray.filters[i].filterValues.length; j++) {
            filterSelect.append('<option value="' + jsonArray.filters[i].filterValues[j] + '">' + jsonArray.filters[i].filterValues[j] + '</option>');
        }
        filterSelect.selectmenu('refresh', true);
    }
}

Технически это удаляет каждый option из select, заменяет его новыми данными, затем вызывает selectmenu('refresh', true) заставить его восстановить.

Это работает на Android.

Это не работает на iOS. Не работает, это означает, что оно не обновляет "нативное" меню внизу, оно остается таким же, как и раньше.

Тот же код, конечно.

Что мне с этим делать?

1 ответ

Решение

Ошибка была полностью в другом месте, она даже не работала, как указано в реальной отладке на iOS.

Метод:

    filterSelect.change(function() {
        ...
        bridge.callHandler("updateResultSearchFilters", result);
    });

не было ссылки на bridgeпоэтому метод никогда не вызывался...

Другие вопросы по тегам