выберите значение, не меняющееся после вызова ajax - PullRequest
0 голосов
/ 29 августа 2011

Я написал фрагмент кода для генерации диаграммы по значениям, сгенерированным вызовом ajax.

Проблема в том, что выбор (годы) не меняет своего значения после завершения вызова. Странно то, что я вижу, как меняется его значение (если я предупреждаю его текущее значение), но оно просто не изменится.

Код:

http://pastebin.com/RNfLmdWy

Функция $ .load_x является пользовательским загрузчиком, но ведет себя так же, как обычный вызов $ .getJson.

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Нашли это! Эта часть ответственна:

var option = $(this).attr('id').split('option_');
$('#'+option[1]).val(String($cur_val));
setTimeout(function(){$('#'+option[1]).val(String($cur_val))}, 1000);

Я не знаю, что вы пытались сделать здесь, но в основном переменная option становится массивом ["", "years"], и на следующем шаге вы устанавливаете $ ("#" + option [ 1]) значение переменной $ cur_val, которая найдена во входных данных #option_years.

Тааак, чтобы обернуть это. Чтобы избавиться от проблемы «мой выбор не меняет своего значения», в этом случае просто избавьтесь от этих строк или, по крайней мере, дайте мне знать, что вы хотели там сделать:)

РЕДАКТИРОВАТЬ: Вот пример, который работает для меня: http://pastebin.com/sFRT3GJa (проверено на FF и Chrome). Как видите, в качестве источника я использую jQuery 1.6.1, jQuery UI 1.8.16 и jqPlot 1.0.0b2_r792. Кроме этого, я переместил функцию обратного вызова $ .load_x и назвал ее handleJSON . Затем я передал данные JSON, которые вы вставили в свой вопрос, чтобы смоделировать успешный ответ функции $ .load_x.

0 голосов
/ 29 августа 2011

Прежде чем сделать get_port_graph вызов, дайте некоторое время для поля выбора, чтобы изменить раскрывающийся список после его тяжелого вызова. Это будет работать.

function year_chart(year)
{
    settTimeout(function(){
        var d = new Date();
        get_port_graph("Uitporteringen "+year,d.getMonth(), year,'outport', 'chart1', 'bar');   
    }, 100);       

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