I'm using JavaScript to create some HTML. So I'm creating the HTML in JavaScript, using createElement in a loop.
I was having issues between Mozilla and Internet Explorer, but have seperated the 2, and now I'm down to the last issue.
In my array loop for IE, this works, but the value ends up being the last idx of the array, so the last image in the list is always selected.
I can't figure out how to create sort of a static link, so each image has the appropriate unique file name assigned to it in the DOM. I know if I create a var, the var will just keep changing to the new value, at least I think so.
[Internet Explorer]
var table_Object = document.createElement("table");
table_Object.id = "_table_PreviewCell_Container_" + idx;
table_Object.className = "_colorChange";
table_Object.cellPadding = "0";
table_Object.cellSpacing = "0";
table_Object.border = "0";
table_Object.onclick = function () { load_ModalPreview(fbType, image_Object[idx].image_Filename); };
table_Object.style.cursor = "hand";
table_Object.style.cursor = "pointer";
table_Object.style.width = "96%";
table_Object.style.backgroundColor = "rgb(255,255,255)";
tableCell_Container.appendChild(table_Object);
In Mozilla, I did this, which works, but I was warned to never use setAtributes, and would like to get around it. And it doesn't work in IE7 and 8
[Mozilla]
var table_Object = document.createElement("table");
table_Object.id = "_table_PreviewCell_Container_" + idx;
table_Object.className = "_colorChange";
table_Object.cellPadding = "0";
table_Object.cellSpacing = "0";
table_Object.border = "0";
table_Object.setAttribute("onclick", "load_ModalPreview('" + fbType + "', '" + image_Object[idx].image_Filename + "');");
table_Object.style.cursor = "hand";
table_Object.style.cursor = "pointer";
table_Object.style.width = "96%";
table_Object.style.backgroundColor = "rgb(255,255,255)";
tableCell_Container.appendChild(table_Object);
[EDIT] by request - The whole loop with new code change for onclick - purpose to perhaps consolidate 2 versions into one that works on both.
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "productEditor.asmx/load_Library",
data: "{\"fbType\" : \"" + fbType + "\"}",
dataType: "json",
success: function (responseText) {
eval('(' + responseText.d + ')');
var objB = jQuery.parseJSON(responseText.d);
var image_ExitCode = objB.image_ExitCode;
var image_Objects = objB.image_Objects;
var image_Object = image_Objects.image_Object;
var array_Length = image_Object.length;
if (bMSIE == true) {
var table_Container = document.createElement("table");
table_Container.cellPadding = "0";
table_Container.cellSpacing = "0";
table_Container.border = "0";
table_Container.style.width = "97%";
table_Container.style.display = "block";
var tr_ContainerRow = table_Container.insertRow(-1);
var trx = 0;
for (idx = 0; idx < array_Length - 1; idx++) {
var tableCell_Container = tr_ContainerRow.insertCell(-1);
tableCell_Container.vAlign = "top";
tableCell_Container.style.width = "20%";
tableCell_Container.style.height = "102px";
tableCell_Container.style.textAlign = "center";
tr_ContainerRow.appendChild(tableCell_Container);
var temp_Data = image_Object[idx].image_Filename;
var table_Object = document.createElement("table");
table_Object.id = "_table_PreviewCell_Container_" + idx;
table_Object.className = "_colorChange";
table_Object.cellPadding = "0";
table_Object.cellSpacing = "0";
table_Object.border = "0";
table_Object.onclick = (function (fbType, temp_Data) { return function () { load_ModalPreview(fbType, temp_Data) } })(fbType, temp_Data);
table_Object.style.cursor = "hand";
table_Object.style.cursor = "pointer";
table_Object.style.width = "96%";
table_Object.style.backgroundColor = "rgb(255,255,255)";
tableCell_Container.appendChild(table_Object);
var tr_Object_Image = table_Object.insertRow(-1);
var td_Object_Image = document.createElement("td");
td_Object_Image.style.width = "100%";
td_Object_Image.style.height = "72px";
td_Object_Image.style.textAlign = "center";
td_Object_Image.style.verticalAlign = "middle";
tr_Object_Image.appendChild(td_Object_Image);
var img_Thumbnail = document.createElement("img");
img_Thumbnail.src = image_Object[idx].image_Thumbnail;
img_Thumbnail.alt = truncate(image_Object[idx].image_Filename, 15);
img_Thumbnail.style.margin = "2px";
td_Object_Image.appendChild(img_Thumbnail);
var tr_Object_Filename = table_Object.insertRow(-1);
var td_Object_Filename = document.createElement("td");
td_Object_Filename.style.width = "100%";
td_Object_Filename.style.height = "12px";
td_Object_Filename.style.textAlign = "center";
tr_Object_Filename.appendChild(td_Object_Filename);
var span_Filename = document.createElement("span");
span_Filename.style.color = "rgb(0,0,0)";
span_Filename.style.fontSize = "0.6em";
span_Filename.innerText = truncate(image_Object[idx].image_Filename, 15);
td_Object_Filename.appendChild(span_Filename);
var tr_Object_Filedate = table_Object.insertRow(-1);
var td_Object_Filedate = document.createElement("td");
td_Object_Filedate.style.width = "100%";
td_Object_Filedate.style.height = "12px";
td_Object_Filedate.style.textAlign = "center";
tr_Object_Filedate.appendChild(td_Object_Filedate);
var span_Filedate = document.createElement("span");
span_Filedate.style.color = "rgb(0,0,0)";
span_Filedate.style.fontSize = "0.6em";
span_Filedate.innerText = image_Object[idx].image_Filedate;
td_Object_Filedate.appendChild(span_Filedate);
var tr_Object_LowerSpacer = table_Object.insertRow(-1);
var td_Object_LowerSpacer = document.createElement("td");
td_Object_LowerSpacer.style.width = "100%";
td_Object_LowerSpacer.style.height = "4px";
td_Object_LowerSpacer.style.textAlign = "center";
td_Object_LowerSpacer.innerText = " "
tr_Object_LowerSpacer.appendChild(td_Object_Filedate);
if (trx == 4) {
trx = 0;
var tr_ContainerRow = table_Container.insertRow(-1);
}
else {
trx++
}
}
}
else {
var table_Container = document.createElement("table");
table_Container.cellPadding = "0";
table_Container.cellSpacing = "0";
table_Container.border = "0";
table_Container.style.width = "98%";
table_Container.style.display = "block";
table_Container.style.textAlign = "center";
table_Container.style.margin = "0px auto";
var tr_ContainerRow = document.createElement("tr");
table_Container.appendChild(tr_ContainerRow);
var trx = 0;
for (idx = 0; idx < array_Length - 1; idx++) {
var tableCell_Container = tr_ContainerRow.insertCell(-1);
tableCell_Container.vAlign = "top";
tableCell_Container.style.width = "150px";
tableCell_Container.style.height = "102px";
tableCell_Container.style.textAlign = "center";
tr_ContainerRow.appendChild(tableCell_Container);
var temp_Data = image_Object[idx].image_Filename;
var table_Object = document.createElement("table");
table_Object.id = "_table_PreviewCell_Container_" + idx;
table_Object.className = "_colorChange";
table_Object.cellPadding = "0";
table_Object.cellSpacing = "0";
table_Object.border = "0";
table_Object. önclick = (function (fbType, temp_Data) { return function () { load_ModalPreview(fbType, temp_Data) } })(fbType, temp_Data);
table_Object.style.cursor = "hand";
table_Object.style.cursor = "pointer";
table_Object.style.width = "96%";
table_Object.style.backgroundColor = "rgb(255,255,255)";
tableCell_Container.appendChild(table_Object);
var tr_Object_Image = document.createElement("tr");
table_Object.appendChild(tr_Object_Image);
var td_Object_Image = document.createElement("td");
td_Object_Image.style.width = "100%";
td_Object_Image.style.height = "72px";
td_Object_Image.style.textAlign = "center";
td_Object_Image.style.verticalAlign = "middle";
tr_Object_Image.appendChild(td_Object_Image);
var img_Thumbnail = document.createElement("img");
img_Thumbnail.src = image_Object[idx].image_Thumbnail;
img_Thumbnail.alt = truncate(image_Object[idx].image_Filename, 15);
img_Thumbnail.style.margin = "2px";
td_Object_Image.appendChild(img_Thumbnail);
var tr_Object_Filename = document.createElement("tr");
table_Object.appendChild(tr_Object_Filename);
var td_Object_Filename = document.createElement("td");
td_Object_Filename.style.width = "100%";
td_Object_Filename.style.height = "12px";
td_Object_Filename.style.textAlign = "center";
tr_Object_Filename.appendChild(td_Object_Filename);
var span_Filename = document.createElement("span");
span_Filename.style.color = "rgb(0,0,0)";
span_Filename.style.fontSize = "0.6em";
span_Filename.innerHTML = truncate(image_Object[idx].image_Filename, 15);
td_Object_Filename.appendChild(span_Filename);
var tr_Object_Filedate = document.createElement("tr");
table_Object.appendChild(tr_Object_Filedate);
var td_Object_Filedate = document.createElement("td");
td_Object_Filedate.style.width = "100%";
td_Object_Filedate.style.height = "12px";
td_Object_Filedate.style.textAlign = "center";
tr_Object_Filedate.appendChild(td_Object_Filedate);
var span_Filedate = document.createElement("span");
span_Filedate.style.color = "rgb(0,0,0)";
span_Filedate.style.fontSize = "0.6em";
span_Filedate.innerHTML = image_Object[idx].image_Filedate;
td_Object_Filedate.appendChild(span_Filedate);
var tr_Object_LowerSpacer = document.createElement("tr");
table_Object.appendChild(tr_Object_LowerSpacer);
var td_Object_LowerSpacer = document.createElement("td");
td_Object_LowerSpacer.style.width = "100%";
td_Object_LowerSpacer.style.height = "6px";
td_Object_LowerSpacer.style.textAlign = "center";
td_Object_LowerSpacer.innerHTML = " "
tr_Object_LowerSpacer.appendChild(td_Object_Filedate);
if (trx == 4) {
trx = 0;
tr_ContainerRow = document.createElement("tr");
table_Container.appendChild(tr_ContainerRow);
}
else {
trx++
}
}
}
$('[id*="_panel_Preview_Object"]').empty();
$('[id*="_panel_Preview_Object"]').append(table_Container);
$("_table_Progress").hide('fast');
$('[id*="_table_PreviewCell_Container_"]').bind('mouseover', function () {
$(this).css("background-color", "#C6DEFF");
});
$('[id*="_table_PreviewCell_Container_"]').bind('mouseout', function () {
$(this).css("background-color", "#FFFFFF");
});
},
error: AjaxFailed