JQuery Mobile changePage () плохо работает при вызове из динамически создаваемой опции выбора? - PullRequest
0 голосов
/ 02 января 2012

У меня есть страница Jquery Mobile с простым меню выбора.

    <div class="selectMenuContainer">
        <div data-role="fieldcontain">
            <label for="selectmenu" class="select">Heroes:</label>
            <select name="selectmenu" id="heroSelectMenu" class="heroSelectMenu" >
                <option value="0">Choose One...</option>
                <option value="Option 1">Option 1</option>
                <option value="Option 2">Option 2</option>
            </select>
        </div>
    </div>

В случае события pageinit я использую jQuery для .remove() всего из меню выбора, а затем динамически добавляю много опций. Конечно, я не забываю обновить меню выбора.

function populateHeroNames(){
    //populate hero select item
    $('#heroSelectMenu').empty();
    $('#heroSelectMenu').append('<option value="0">Please Choose...</option>');
    for(var i=0;i<heroNameLength;i++){
        if(heroName[i]){
            var currentHeroName = heroName[i];
        }else{continue;}
        $('#heroSelectMenu').append('<option value="'+i+'">'+currentHeroName+'</option>');
    }
    //refresh hero select item
    var heroSelectMenu = $("#heroSelectMenu");
    heroSelectMenu.selectmenu("refresh");
    console.log('heroes added!');
}

Моя проблема в том, что я не могу успешно перейти на другую страницу из программно созданной опции. Я могу сделать это просто отлично из жестко закодированного варианта, хотя. Когда я нажимаю жестко заданную опцию, я могу использовать $.mobile.changePage() очень хорошо. Но из программно созданной опции страница, на которую я перехожу, исчезнет и вернется на начальную страницу.

При тестировании, когда я нажимаю кнопку "Назад", я фактически иду к месту назначения. Таким образом, очевидно, что JqueryM перешел к месту назначения, но затем вернулся по какой-то причине.

Я подозреваю, что причина в причудливой загрузке DOM в Jquery Mobile. Есть ли что-то, что мне нужно освежить ... или, может быть, помешать освежить? Просто перейдите на страницу ... и останьтесь там, черт возьми!

...