我要做的是当您将鼠标悬停在某个名称上时,会显示一个工具提示弹出窗口,其中包含该名称的详细信息。
我做了以下但由于某种原因,它似乎不起作用。没有工具提示出现。当您将鼠标悬停在某个名称上时,它会调用一个函数并执行一个AJAX请求,并以字符串形式返回详细信息。我已经验证该函数工作正常并返回字符串。
我似乎无法将返回的字符串放入工具提示弹出窗口。我在IE8上测试这个
Javascript功能:
function showDetails(name){
var xmlHttpRequest;
if(window.XMLHttpRequest){
xmlHttpRequest = new XMLHttpRequest();
}else{
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP>");
}
xmlHttpRequest.onreadystatechange=function(){
if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
document.getElementById("details").innerHTML = xmlHttpRequest.responseText;
}
}
xmlHttpRequest.open("GET", "showStopsInfoPopup.do?name="+name, true);
xmlHttpRequest.send();
}
CSS
#tooltip { position: relative; }
#tooltip a{text-decoration: none;}
#tooltip a span { display: none; color: #FFFFFF; }
#tooltip a:HOVER span { display: block; position: absolute;
width: 200px; background-color: #aaa;
height: 50px; color: #FFFFFF; padding: 5px; }
JSP页面:
<tr id="tooltip">
<td onmouseover="showDetails('${name}')">
<a href="#"><c:out value="${name}"><span id="details"></span></c:out></a>
</td>
</tr>
只有我的查看源页面的相关部分(生成的html):“a”标记内的“span”标记丢失!!
<tr id="tooltip">
<td onmouseover ="showDetails('NRT')"><a href="#">NRT</a> </td>
</tr>
.
.
.
...
<span id="details">*****************</span>
答案 0 :(得分:3)
我假设您正在生成动态显示的数据并且您有多行。
如果是这样,那么表中的所有span标记都将具有相同的id(“details”)。您必须能够区分两行。
您可以做的是在ID中添加一个数字,并在转到下一行时增加数字,以便每个span标记都具有唯一ID。
<a href="#"><c:out value="${name}"><span id="details${index}"></span></c:out></a>
请务必将索引作为参数传递给javascript函数并进行以下更改。
function showDetails(name, index){
..
...
document.getElementById("stopsInfo"+index).innerHTML = xmlHttpRequest.responseText;
.
...
}
答案 1 :(得分:1)
您可以查看来源并向我们显示生成的HTML。我试过这个,只是做一个快速测试似乎没问题。