我真的很感謝你的幫助,因爲我一直在反覆觀察,完全迷失在可能出錯的地方。Ajax調用,請參閱visualy的元素,但Javascript不會看到它們
我有一個Ajax調用Web服務,並從這個調用我建立一些HTML結構。到目前爲止,一切都很好,數據被拉下來,我可以直觀地看到結構。
但是,隨着我的代碼的繼續,我嘗試稍後閱讀這些元素進行一些更多操作,JavaScript根本沒有看到它們,並且元素數量爲零。
該項目的一些相關代碼。 首先運行,基本上這個函數建立必要的HTML一塊
$.ajax({
type: "POST",
url: "HistoryEventsWebService.asmx/getEventsData",
data: event_types,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) { //on success
var results = result.d;
$('#insidediv_container').empty();
for (var i = 0; i < results.length; i++) {
var insidediv = '';
insidediv += '<div class="insidediv">';
insidediv += '<span class="month">' + results[i].month + '</span><span class="day">' + results[i].day + '</span><span class="year">' + results[i].year + '</span>';
insidediv += '<div class="header"><span>Jan 08, 2010 - event one</span> </div>';
insidediv += '<div class="contentdiv">' + results[i].event_desc + '</div>';
insidediv += '</div>';
$('#insidediv_container').append(insidediv);
}
}
});
return false;
右鍵這個上功能完成後,我的代碼是繼續下一個功能,而這也正是我有我的問題!
var currentbox = 0;
var current_box_old = 0;
var box_size = ($('.insidediv').width() + 1).toString();
var box_count = $('.container2 > div > div').length - 1;
//console.log(box_count);
var min_range = 0;
setScale(); //making slider visual elements
//slider code
$("#slider").slider({
min: min_range,
max: box_count,
value: 0,
animate: true,
//step: 1,
slide: function (event, ui) {
current_box_old = currentbox;
currentbox = ui.value;
if (currentbox > current_box_old)
$('#insidediv_container').animate({ "margin-left": "-=" + box_size + "px" }, "normal");
else
$('#insidediv_container').animate({ "margin-left": "+=" + box_size + "px" }, "normal");
}
});
預先感謝您。
我希望results.length總是超短。在for循環中將項目附加到DOM是非常昂貴的。追加一個字符串,然後在循環結尾附加一個大字符串,以獲得更多超級快樂的樂趣時間(jQuery性能)。 – 2011-04-12 19:43:53
感謝您的建議,我甚至不知道這一點。將確保查看它。 – Dmitris 2011-04-12 19:49:30