Javascript 返回本地存储数据的单击功能
几个月前我一直在做这个项目,有点忘了。不管怎样,我现在要试着完成它。我的问题是。我有一个动态创建的表,其中每个单元格都可以单击。单击可以选择使用不同于数组的图像填充表的单元格。这很好。使用localstorage,我可以在单击后保存表状态,以反映所做的更改,但当我退出页面并重新输入时,更改的图像将被重新绘制,但表不再可单击。我正在努力寻找解决办法。也许你能帮忙?下面是一些代码:Javascript 返回本地存储数据的单击功能,javascript,local-storage,Javascript,Local Storage,几个月前我一直在做这个项目,有点忘了。不管怎样,我现在要试着完成它。我的问题是。我有一个动态创建的表,其中每个单元格都可以单击。单击可以选择使用不同于数组的图像填充表的单元格。这很好。使用localstorage,我可以在单击后保存表状态,以反映所做的更改,但当我退出页面并重新输入时,更改的图像将被重新绘制,但表不再可单击。我正在努力寻找解决办法。也许你能帮忙?下面是一些代码: function makeChart() { table = document.createEleme
function makeChart() {
table = document.createElement('table');
var taskName = document.getElementById('taskname').value,
header = document.createElement('th'),
numDays = document.getElementById('days').value, //columns
howOften = document.getElementById('times').value, //rows
row,
r,
col,
c;
target= numDays*howOften;
var cel = null;
var myImages = new Array();
myImages[0] = "../www/images/test.png";
myImages[1] = "../www/images/test.png";
myImages[2] = "../www/images/test.png";
var my_div = document.createElement("div");
my_div.id = "showPics";
document.body.appendChild(my_div);
var newList = document.createElement("ul");
my_div.appendChild(newList);
if (taskName == '' || numDays == '') {
alert('Please enter task name and number of days');
}
if (howOften == '') {
howOften = 1;
}
if (taskName != '' && numDays != '') {
for (var i = 0; i < myImages.length; i++) {
var allImages = new Image();
allImages.src = myImages[i];
allImages.onclick = function (e) {
if (sel !== null) {
sel.src = e.target.src;
my_div.style.display = 'none';
sel.onclick = null;
sel = null;
}
};
var li = document.createElement('li');
li.appendChild(allImages);
newList.appendChild(li);
}
my_div.style.display = 'none';
header.innerHTML = taskName;
table.appendChild(header);
function addImage(col) {
var img = new Image();
img.src = "../www/images/imageholder.png";
col.appendChild(img);
img.onclick = function () {
my_div.style.display = 'block';
sel = img;
};
}
for (r = 0; r < howOften; r++) {
row = table.insertRow(-1);
for (c = 0; c < numDays; c++) {
col = row.insertCell(-1);
addImage(col);
}
}
document.getElementById('singleUser').appendChild(table);
var blankVal = {
value : ''
};
$("#taskname").attr(blankVal);
$("#days").attr(blankVal);
$("#times").attr(blankVal);
document.getElementById('createChart').onclick = null;
saveData();
}
}
function saveData(){
localStorage.setItem(name, table.innerHTML);
}
function showData(){
var showme = localStorage.getItem(name);
var newTable = document.createElement('table');
newTable.innerHTML= showme;
newTable.id = "newTable";
var showIt= document.getElementById('holdTable');
showIt.appendChild(newTable);
console.log(showIt);
};
函数makeChart(){
table=document.createElement('table');
var taskName=document.getElementById('taskName')。值,
header=document.createElement('th'),
numDays=document.getElementById('days')。值,//列
howfrequency=document.getElementById('times')。值,//行
一行
R
上校,
C
目标=numDays*多久一次;
var-cel=null;
var myImages=新数组();
myImages[0]=“www/images/test.png”;
myImages[1]=“www/images/test.png”;
myImages[2]=“www/images/test.png”;
var my_div=document.createElement(“div”);
my_div.id=“showPics”;
文件.body.appendChild(my_div);
var newList=document.createElement(“ul”);
我的子女(新名单);
如果(任务名=“”| | numDays=“”){
警报(“请输入任务名称和天数”);
}
如果(频率=“”){
频率=1;
}
如果(任务名!=''&&numDays!=''){
对于(var i=0;i
名称从何而来?对不起,名称是在前面的表单中输入的,用于标识特定的用户,并通过按钮id来标识其特定的表。这有意义吗?此代码段中从未调用showData()。它是从其他地方被调用的吗?嗯,“name”是一个不好用的全局名称;例:名称=[1,2,3];名称的类型==“字符串”;但如果它是一根弦,我想它会起作用;我只是直接避免使用名称…嗨,肯,是的,showData()在前面被调用,这样当用户打开他们的特定页面时,他们的表和保存的数据就会被调用。但是,它显示但不能编辑。