所以我有这个功能:
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");
}
此函数应该创建一个select,create选项,然后创建一个selectToUISlider。当我注释掉“转换”语句(在最后一个警报之前)时,一切都按预期显示。当我把它留下来时,追加不起作用。
此外,当我把它留在里面时,没有任何东西出现,萤火虫给了我错误:
selectOptions [optIndex]未定义 [打破此错误]
(75超出范围10)
我不确定75和10来自哪里,但无论我的滑块范围如何,它总是75和10。
我的所有变量都是正确的并且符合预期。 我以前几乎以同样的方式完成了这个,除了我使用django模板标签来创建元素,而不是jquery(并且它有效)。
我正在使用jQuery 1.6.2和jQueryUI 1.8.16(就像我工作时一样)
任何人都可以看到问题吗?或者之前有人遇到过这个问题吗?
编辑: 没有函数调用(这是我可以让select完全显示的唯一方法),select的生成源代码如下:
<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>
答案 0 :(得分:0)
由于某些原因,如果我使用var名称而不是id选择它。