0
我有這樣的代碼:使用for循環中的函數變量初始化JavaScript對象 - 如何避免覆蓋?
for(i = 0; i < 1; i++){
$("body").append(questions[i]);
for(j = 0; j < prompts.length; j++){
var temp_id = "slider-" + j;
var temp_num_text_id = "slider-text-" + j;
var temptextdiv = $("<h5>50</h5>");
$("body").append(temptextdiv);
temptextdiv.attr('id', temp_num_text_id);
var tempdiv = $("<div></div>");
$("body").append(tempdiv);
tempdiv.attr('id', temp_id);
$("#" + temp_id).slider({
min: 0,
max: 100,
value: 50,
slide: function(event, ui){
$("#" + temp_num_text_id).html(ui.value);
}
});
}
}
的目標是,以使有關問題的各種提示,每個都是在一個jQuery UI的滑塊做了一個排名問題。我的麻煩是試圖將顯示滑塊值的文本與滑塊本身「鏈接」。當我用一個滑塊測試時,它與上面顯示的滑塊對象聲明中的函數一樣簡單,但是當這在循環內完成時,所有滑塊只會更改最後一個滑塊的文本值。據我瞭解,從其他人的類似問題,循環的每一次迭代覆蓋以前的聲明。我如何避免這種情況?
請提供您的「問題」和「提示」數據的示例。 – Twisty
另外,這個'for'循環只會在'i <1'上運行一次,只發生在'i = 0'時。 – Twisty
你的提示會創建重複的'id'屬性,這會產生問題:'slider-0','slider-1',slider-2'。所以這將導致滑塊在每個循環中被重新分配給所有相同的選擇器。 – Twisty