Ошибка selectToUISlider selectOptions [optIndex] не определен - PullRequest
0 голосов
/ 06 марта 2012

, поэтому у меня есть эта функция:

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>

1 Ответ

0 голосов
/ 07 марта 2012

почему-то работает, если я выбираю с именем переменной вместо идентификатора.

...