现在需要实现这样一个效果,就是鼠标移动到某一个标签上面,然后会出现一个下拉菜单,而且菜单中每个选项都是可以点击的,当鼠标移出标签和下拉菜单后,菜单消失。
!!!!不要用setTimeout方法,因为如果下拉菜单中link数量太多的话,有可能客户还没有点击他希望的link,菜单就消失了,这是我的思路,但是没有成功,请指教:jsp:<body>
<form>
<label id="go" style="position:absolute;left:100px;top:200px">title</label>
<div id="lll" style="position:absolute;left:100px;top:210px">
<table id="link">
<tbody>
</tbody>
</table>
</div>
</form>
</body>js:
function check()
{
var table=document.getElementById("link");
var l=document.getElementById("go");
l.style.cursor="pointer";
l.onmouseover = function()
{
var tr=table.tBodies[0].getElementsByTagName("tr");
for(var i=tr.length-1;i>=0;i--)
{
table.tBodies[0].removeChild(tr[i]);
}
table.style.visibility="visible";
var tb=table.tBodies[0];
for(var i=0;i<5;i++)
{
var tr=tb.insertRow(i);
tr.insertCell(0);
tr.cells[0].appendChild(document.createTextNode(a[i]));
tr.cells[0].onmouseover = function(oEvent)
{
table.style.visibility="visible";
// alert(oEvent.clientY);
}
tr.cells[0].onmouseout = function(oEvent)
{
//这是我最后想出的办法,但是有问题
alert(oEvent.clientX);
if(oEvent.clientX>120||oEvent.clientX<100)
table.style.visibility="hidden";
else if(oEvent.clientY>320||oEvent.clientY<200)
table.style.visibility="hidden";
}
}
}
}
!!!!不要用setTimeout方法,因为如果下拉菜单中link数量太多的话,有可能客户还没有点击他希望的link,菜单就消失了,这是我的思路,但是没有成功,请指教:jsp:<body>
<form>
<label id="go" style="position:absolute;left:100px;top:200px">title</label>
<div id="lll" style="position:absolute;left:100px;top:210px">
<table id="link">
<tbody>
</tbody>
</table>
</div>
</form>
</body>js:
function check()
{
var table=document.getElementById("link");
var l=document.getElementById("go");
l.style.cursor="pointer";
l.onmouseover = function()
{
var tr=table.tBodies[0].getElementsByTagName("tr");
for(var i=tr.length-1;i>=0;i--)
{
table.tBodies[0].removeChild(tr[i]);
}
table.style.visibility="visible";
var tb=table.tBodies[0];
for(var i=0;i<5;i++)
{
var tr=tb.insertRow(i);
tr.insertCell(0);
tr.cells[0].appendChild(document.createTextNode(a[i]));
tr.cells[0].onmouseover = function(oEvent)
{
table.style.visibility="visible";
// alert(oEvent.clientY);
}
tr.cells[0].onmouseout = function(oEvent)
{
//这是我最后想出的办法,但是有问题
alert(oEvent.clientX);
if(oEvent.clientX>120||oEvent.clientX<100)
table.style.visibility="hidden";
else if(oEvent.clientY>320||oEvent.clientY<200)
table.style.visibility="hidden";
}
}
}
}
这样似乎通过坐标的方法就不太好实现了....
可以帮忙给一个通用的方法吗??谢谢