java-带有动态信息的工具提示弹出窗口

我要尝试做的是,当您将鼠标悬停在名称上时,显示带有该名称详细信息的工具提示弹出窗口.

我做了以下工作,但是由于某种原因,它似乎不起作用.没有工具提示出现.当您将鼠标悬停在名称上时,它会调用一个函数并执行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 onm ouseover="showDetails('${name}')">
        <a href="#"><c:out value="${name}"><span id="details"></span></c:out></a> 
    </td>
</tr>

我的视图源页面(生成的html)中只有相关部分:“ a”标记内的“ span”标记丢失了!!

<tr id="tooltip">               
    <td onm ouseover ="showDetails('NRT')"><a href="#">NRT</a> </td> 
</tr>    
.
.
.
...  
<span id="details">*****************</span>

解决方法:

我假设您正在生成动态显示的数据,并且您有多行.

如果是这样,则表中的所有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;
.
...
}
上一篇:javascript-工具提示/悬停中的音频?


下一篇:C#-WinForms工具提示未显示