我想从第二页中进行单击事件。第1页具有 2nd Page 的链接,有一个按钮单击按钮时,它会添加 html row 在上,第1页。我正在尝试将localStorage
用于传递数据。我的代码不起作用,以下查看:
1st page.html
html
<div id="content">
</div>
JS
var output = document.getElementById('content');
addEvent(window, 'storage', function (event) {
if (event.key == 'StorageName') {
output.innerHTML = event.newValue;
}
});
第二页
html
<input id="data" type="button" value="+" onclick="addRow()">
JS
addEvent(dataInput, 'keyup', function () {
localStorage.setItem('StorageName', this.value);
});
var dataInput = dataInput = document.getElementById('data');
object.onclick = function(){
addRow() {
var div = document.createElement('div');
div.className = 'row';
div.innerHTML = '<button>GO</button>';
document.getElementById('content').appendChild(div);
}
};
您尚未正确定义addRow()
功能。函数的名称是用关键字function
定义的,而不是功能主体内部的。您的代码:
object.onclick = function(){
addRow() {
var div = document.createElement('div');
div.className = 'row';
div.innerHTML = '<button>GO</button>';
document.getElementById('content').appendChild(div);
}
};
应更改为:
function addRow() {
var div = document.createElement('div');
div.className = 'row';
div.innerHTML = '<button>GO</button>';
document.getElementById('content').appendChild(div);
}
object.onclick = addRow;
我同意Skyline3000的答案addrow()。另外,还有其他一些可能/应该改变的事情:
- 在将事件附加到它之前定义数据
- object.onclick应为datainput.onclick,因为那是单击的元素。(点击事件您真正想要什么?也许Onkeyup?)
- 设置LocalStorage时,您要将要传递给第1页的函数定义设置为Addrow()。只需删除括号以通过定义即可。(也应该在使用之前定义)
- 如果您只想通过该功能,则不应该在第2页上设置ONCLICK事件。
- 如果不更改功能,则无需每次传递该功能;只需设置一次并记录单击的次数即可。
- 第1页可以捕获加载事件和检查局部记录的功能定义和运行次数的次数。然后它可以循环并执行功能。
- 如果您要查找的内容,则您已经没有将链接添加回第2页,但是当您知道文件名和路径时,您可以将其添加到addrow函数中。
第1页
var output = document.getElementById('content');
addEvent(window, 'load', function (event) {
if (localStorage.getItem('StorageName') && localStorage.getItem('rowsToAdd')) {
for(var i = 0; i > rowsToAdd;i++){
var addNewRow = localStorage.getItem('StorageName');
addNewRow();
}
}
});
第2页
var dataInput = document.getElementById('data');
function addRow() {
var div = document.createElement('div');
div.className = 'row';
div.innerHTML = '<button>GO</button>';
document.getElementById('content').appendChild(div);
};
localStorage.setItem('StorageName', addRow);
dataInput.onclick = function() {
if(localStorage.getItem('rowsToAdd')){
localStorage.setItem('rowsToAdd', localStorage.getItem('rowsToAdd') + 1);
}else{
localStorage.setItem('rowsToAdd',1);
}
}
我没有测试此代码,因此它可能无法使用副本 粘贴,但希望很接近。
我还以最好的理解对您想要的东西做出了最好的理解,但我没有完全看到您似乎正在做的事情的理想结果。