我正在使用Javascript创建一个动态网页,其中我创建了多个表,每个表都列出了内容。最初加载table 1
页面时,当我鼠标移到table 1
上的特定项目时,table 2
旁会显示table 1
,其中包含与table 2
相关的内容列表。在mouseout
,table 2
应该消失。
这是针对table 1
列表中的每个项目完成的。
我在这里遇到的问题是,我无法对齐table 2
,而mouseout
我无法消除它。
请帮忙。
我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script type="text/javascript" src="C:\JS Projects\Net.js"></script>
</head>
<body onload="myFunction()">
</body>
</html>
我的JS代码:
function myFunction()
{
document.body.style.background = "url('http://www.macwallhd.com/wp-content/Wallpapers/Animals/Desktop%20Cats%20As%20Hunters%20Pet%20Pictures10.jpg') no-repeat center center fixed"
var div = document.createElement("div");
div.id = "wrapper";
//Table Creation Start
var table = document.createElement("table");
table.id = "t1";
table.style.cssText = "background-color:blue;color:White; padding:10px; opacity:0.3;margin-top:150px;display:block; position:absolute;align:center;width:250px;height:300px;";
div.appendChild(table);
var tr1 = table.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "favourites";
var tr2 = table.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "system";
var tr3 = table.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "settings";
/***********Table creation End****/
var table2 = document.createElement("table");
table2.id = "t2";
tr1.addEventListener("mouseover", createTable,false);
tr1.addEventListener("mouseout", removeTable,false);
document.body.appendChild(div);
};
function createTable()
{
//switch(choice)
//{
// case: mouseover
// case: mouseout
//}
var div = document.getElementById("wrapper");
var table2 = document.createElement("table");
table2.id = "t2";
table2.style.cssText = "background-color:blue;color:White; padding:10px; opacity:0.3;align:center;width:250px;height:300px;margin-top:150px;margin-left:290px;display:block;";
div.appendChild(table2);
var tr1 = table2.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "channel 1";
var tr2 = table2.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "channel 2";
var tr3 = table2.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "channel 3";
}
function removeTable(){
var elem = documenet.getElementById("t2");
elem.style.display = 'none';
}
答案 0 :(得分:1)
您的代码中存在多个问题。
documenet.getElementById("t2");
,应为document.get...
mouseover
上创建一个新表,这会为您提供大量表格。您不应该动态创建表。您可以先创建它们,然后只填充行。这简化了您的Javascript代码并有助于减少错误的可能性<div id="wrapper">
<table id="t1"></table>
<table id="t2"></table>
</div>
body {
background: url('http://www.macwallhd.com/wp-content/Wallpapers/Animals/Desktop%20Cats%20As%20Hunters%20Pet%20Pictures10.jpg') no-repeat center center fixed;
}
#t1, #t2 {
background-color:blue;
color:White;
padding:10px;
opacity:0.3;
margin-top:150px;
display:block;
position:absolute;
width:250px;
height:300px;
}
#t2 {
margin-left:290px;
display: none;
}
function myFunction() {
//Table Creation Start
var table = document.getElementById("t1");
var tr1 = table.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "favourites";
var tr2 = table.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "system";
var tr3 = table.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "settings";
/***********Table creation End****/
var table2 = document.createElement("table");
table2.id = "t2";
tr1.addEventListener("mouseover", createTable, false);
tr1.addEventListener("mouseout", removeTable, false);
};
function createTable() {
var table2 = document.getElementById("t2");
table2.innerHTML = '';
var tr1 = table2.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "channel 1";
var tr2 = table2.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "channel 2";
var tr3 = table2.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "channel 3";
table2.style.display = 'block';
}
function removeTable() {
var elem = document.getElementById("t2");
elem.style.display = 'none';
}
请参阅JSFiddle
答案 1 :(得分:1)
你可以这样做:Demo Fiddle
t2
的表,如果不存在,则创建一个新表。并将position:absolute
css添加到ID为t2
的table2。
function createTable()
{
var div = document.getElementById("wrapper");
if(document.getElementById("t2")) {
var table2 = document.getElementById("t2");
table2.style.display = 'block';
}
else {
var table2 = document.createElement("table");
table2.id = "t2";
table2.style.cssText = "background-color:blue;color:White; padding:10px; opacity:0.3;align:center;width:250px;height:300px;margin-top:150px;margin-left:290px;display:block;position:absolute";
div.appendChild(table2);
var tr1 = table2.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "channel 1";
var tr2 = table2.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "channel 2";
var tr3 = table2.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "channel 3";
}
}
答案 2 :(得分:0)
试试此代码:DEMO
JS:
function myFunction()
{
document.body.style.background = "url('http://www.macwallhd.com/wp-content/Wallpapers/Animals/Desktop%20Cats%20As%20Hunters%20Pet%20Pictures10.jpg') no-repeat center center fixed"
var div = document.createElement("div");
div.id = "wrapper";
div.style.cssText = "margin-top: 150px;"; // added;
//Table Creation Start
var table = document.createElement("table");
table.id = "t1";
table.style.cssText = "background-color:blue;color:White; padding:10px; opacity:0.3;display:block; position:absolute;align:center;width:250px;height:300px;";
div.appendChild(table);
var tr1 = table.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "favourites";
var tr2 = table.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "system";
var tr3 = table.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "settings";
/***********Table creation End****/
var table2 = document.createElement("table");
table2.id = "t2";
tr1.addEventListener("mouseover", createTable,false);
tr1.addEventListener("mouseout", removeTable,false);
document.body.appendChild(div);
};
function createTable()
{
//switch(choice)
//{
// case: mouseover
// case: mouseout
//}
var div = document.getElementById("wrapper");
var table2 = document.createElement("table");
table2.id = "t2";
table2.style.cssText = "background-color:blue;color:White; padding:10px; opacity:0.3;align:center;width:250px;height:300px;margin-left:290px;display:block;";
div.appendChild(table2);
var tr1 = table2.insertRow(0);
var td = tr1.insertCell(0);
td.innerHTML = "channel 1";
var tr2 = table2.insertRow(1);
var td = tr2.insertCell(0);
td.innerHTML = "channel 2";
var tr3 = table2.insertRow(1);
var td = tr3.insertCell(0);
td.innerHTML = "channel 3";
}
function removeTable()
{
var div = document.getElementById("wrapper");
var elem = document.getElementById("t2");
div.removeChild(elem);
}
答案 3 :(得分:-2)
似乎你想在Show()和Hide()函数之间切换
<script>
$(document).ready(function(){
$("#table1").mouseenter(function(){
$("#table2").show();
});
$("#table1").mouseout(function(){
$("#table2").hide();
});
});
</script>
我希望它有所帮助