навигация по страницам страниц с помощью select и jquery mobile - PullRequest
1 голос
/ 22 марта 2012

Пытаясь использовать этот выпадающий список, выберите другой якорь на странице. Он работает за исключением того, что когда вы выбираете SF, он переходит на страницу SF, а кнопка выбора устанавливается на SF. Но если затем выбрать NY, он вернется к # page1, но кнопка по умолчанию останется SF, если страница не будет перезагружена.

<select name="select1" id="select1" data-mini="true" data-native-menu="false" ONCHANGE="location = this.options[this.selectedIndex].value;">
<option value="#page1">New York, NY</option>
<option value="#SF">San Francisco, CA</option>
<option value="#LV">Las Vegas, NV</option>
<option value="#DAL">Dallas, TX</option>
</select>

Чего мне не хватает?

Спасибо!

РЕДАКТИРОВАТЬ:

Я думаю, что здесь неполная информация. Например, в тексте привязки #SF это совершенно новая страница с собственной копией <select> в заголовке этой страницы. Итак, что происходит, когда вы выбираете второй, чтобы вернуться к первому, он не сбрасывает первый.

Вот как выглядит второй выбор:

<select name="select2" id="select2" data-mini="true" data-native-menu="false" ONCHANGE="window.location = this.options[this.selectedIndex].value;">
<option value="#SF">San Francisco, CA</option>
<option value="#page1">New York, NY</option>
<option value="#LV">Las Vegas, NV</option>
<option value="#DAL">Dallas, TX</option>

Вот что происходит

1 - Load # page1, предварительно выбран NYC. 2 - Выберите SF, загружает #SF, SF выбран, потому что по умолчанию во втором выборе 3 - Выберите NYC, он загружает страницу NYC / # page1, но выпадающий список все еще застрял на #SF, потому что это было то, на чем он последний раз оставался до изменения местоположения.

Надеюсь, это более полно объясняет мою проблему. Я пробовал что-то вроде этого (http://jsfiddle.net/QEUwg/132/), но это не работает, может быть, потому что два выбора находятся в отдельных div?

ОК. Это работает:

//refresh value         
$('select').selectmenu('refresh');

//refresh and force rebuild
$('select').selectmenu('refresh', true);

Потребовалось всего около 20 часов, чтобы бить меня головой о стену.

1 Ответ

1 голос
/ 22 марта 2012

Используйте window.location вместо location

Обновление:

Я дам вам лучший способ, так как вы уже используете jQuery.

$("#select-choice-1").change(function() {
    $($(this).val())[0].scrollIntoView(true); 
})

Демо

Обновление 2

Проблема в том, что вы используете несколько окон выбора и не обновляете их все, когда вы меняете страницу

$(".navigateToPage").on('change', function() {
    $(".navigateToPage").val($(this).val()); //set value for all the select boxes
    $(".navigateToPage").parent().find(".ui-btn-text").html($(this).find("option:selected").html()); 
    //^ Also find the text and update them

});

Рабочий раствор

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