鼠标悬停 显示asp动态层

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:27:32
请看以下程序:
<script>
function show(){

var timer=null;
var DelayTime=500; //2000毫秒
clearTimeout(timer);
var eventX,eventY;
eventX=event.clientX;
eventY=event.clientY;
timer=setTimeout(show2(eventX,eventY),DelayTime);
}

function show2(eventX,eventY){

document.getElementById("layer"&temp)).style.visibility = 'visible';
document.getElementById("layer"&temp)).style.left=eventX+10;
document.getElementById("layer"&temp)).style.top=eventY+10;
}

</script>

然后在以后的程序里调用它:
<a href="view.asp?id=<%=temp%>" title="<%=memo(temp)%>" target="_blank" onmouseover=show() >
<div id="layer"&temp style="position:absolute; width:200px; height:115px; z-index:1; visibility: hidden; background-color: #FFFF00; layer-b

问题可能在<div id="layer"&temp ...这个DIV的id上

我理解你的意思,temp是ASP的变量,不同的记录条目使用不同id的动态层,在层里显示这个条目的相关信息。

首先使用ASP变量来命名HTML元素应该这样写<div id="layer<%=temp%>">
还有在javascript代码中
document.getElementById("layer"&temp)...你无法定位到DIV,因为document中没有id为"layer"&temp的div,如果你要在javascript中使用变量,你可以在<a ..>中的onmouseover事件中将ASP变量temp作为参数传递到javascript中,而且你光有onmouseover事件没有onmouseout事件,当你的鼠标移出目标范围呢,悬停的DIV岂不是一直显示?

所以你的代码应该这样写:
<script>
function show(j_temp){

var timer=null;
var DelayTime=500; //2000毫秒
clearTimeout(timer);
var eventX,eventY;
eventX=event.clientX;
eventY=event.clientY;
timer=setTimeout("show2("+eventX+","+eventY+",'"+j_temp+"')",DelayTime);
}

function show2(eventX,eventY,j_t){

document.getElementById("layer"+j_t).style.display = '';
documen