, поэтому у меня есть эта функция:
function load_question_div(render_to, question_info){
//alert(question_info);
var answertype = question_info['question']['answer_type'];
//var allow_graph = question_info['show_graph'];
var responseoptionset = question_info['response_option_set'];
var range = question_info['range'];
var labels = question_info['labels'];
var choices = question_info['choices'];
var questiondiv = $("#samplequestiondiv").clone();
$(questiondiv).attr("id", "question-div");
var questionform = $(questiondiv).children('form')[0];
$(questionform).attr('id', "question_form");
var questiontitle = $(questiondiv).children('p')[0];
$(questiontitle).text(question_info['question']['title']);
if(answertype == "slider"){
var sliderdiv = document.createElement('div');
$(sliderdiv).attr('id', "slider");
$(sliderdiv).attr('style', "padding-top:1.5em;padding-right: 1em;padding-left:.5em;overflow: visible;");
$(questionform).append(sliderdiv);
for(var i=0; i<responseoptionset.length; i++){
alert(responseoptionset[i]['id']);
var qinput = document.createElement('div');
$(qinput).addClass("question_input");
$(qinput).attr("style", "text-align:center; margin-bottom:40px;padding-left:10px;");
var inputlabel = document.createElement('label');
$(inputlabel).text(responseoptionset[i]['text']);
var inputselect = document.createElement('select');
$(inputselect).attr('name', 'r'+responseoptionset[i]['id']);
$(inputselect).attr('id', 'slider'+responseoptionset[i]['id']);
for (var v=0; v< range.length; v++){
var inputoption = document.createElement('option');
$(inputoption).addClass("question_input");
$(inputoption).attr('value', range[v]);
$(inputselect).append(inputoption);
}
$(qinput).append(inputlabel);
$(qinput).append(inputselect);
$(questionform).append(qinput);
alert("ok");
$('#slider'+responseoptionset[i]['id']).selectToUISlider({tooltip: false, labels: labels}).hide();
alert("done");
}
эта функция должна создать выбор, создать опции, а затем создать selectToUISlider.Когда я закомментирую оператор "convert" (прямо перед последним предупреждением), все выглядит так, как ожидалось.Когда я оставляю это, добавления не работают.
Кроме того, когда я оставляю это, ничего не появляется, и firebug выдает мне ошибку:
selectOptions [optIndex] не определено [Прервать эту ошибку]
(75 вне диапазона 10)
Я не уверен, откуда берутся 75 и 10, но это ВСЕГДА 75 и 10, независимо от диапазонамой слайдер.
Все мои переменные верны и соответствуют ожиданиям.Я делал это раньше, почти так же, за исключением того, что я использовал теги шаблонов django для создания элементов, а не jquery (и это работало).
Я использую jQuery 1.6.2 и jQueryUI 1.8.16 (как это было, когда он работал)
Кто-нибудь может увидеть проблему?Или кто-нибудь сталкивался с этой проблемой раньше?
Редактировать: без вызова функции (это единственный способ, которым я могу заставить выбор отображаться вообще), сгенерированный источник для выбора выглядит так:
<div style=
"padding-top: 1.5em; padding-right: 1em; padding-left: 0.5em; overflow: visible;" id=
"slider"></div>
<div style="text-align: center; margin-bottom: 40px; padding-left: 10px;" class=
"question_input">
<label>--</label>
<select id="slider759" name="r759">
<option text="1" value="1" class="question_input">
1
</option>
<option text="2" value="2" class="question_input">
2
</option>
<option text="3" value="3" class="question_input">
3
</option>
<option text="4" value="4" class="question_input">
4
</option>
<option text="5" value="5" class="question_input">
5
</option>
</select>
</div>