使用Ajax鼠标悬停在图像上后显示文本

时间:2016-09-16 19:49:20

标签: javascript jquery ajax xmlhttprequest

我编写此代码是为了在鼠标悬停图像后显示信息。网站上有三个图像,每个图像都有自己的文本信息:

var resOb = new XMLHttpsRequest ();
 window.onload = function() {
document.getElementsByTagName("img").onmouseover = 
function sndReq(0) {
}
document.getElementsByTagName("img").onmouseover = 
function sndReq(1) {
}
document.getElementsByTagName("img").onmouseover =
function sndReq(2) {
}
  }
 function sndReq(i) {
 switch (i) {

 case 0:
 resOb.open('get', 'info0.txt', true);
 break;

 case 1:    
 resOb.open('get', 'info1.txt', true);
 break;

 case 2:
 resOb.open('get', 'info2.txt', true);
 break;

 resOb.onreadystatechange = function() { 
 handleResponse(i); 
  } 
  }
 function handleResponse () {
document.getElementById("info0").innerHTML =
  resOb.responseText;
}

可悲的是它不起作用,我无法找出问题所在。我需要一些帮助。

这里的HTML输出

<!DOCTYPE html> 
 <html lang="de"> 
 <head> 
 <meta charset="utf-8"> 
 <title>AJAX</title> 
 <meta name="viewport" content= 
 "width=device-width; initial-scale=1.0"> 
  <link rel="stylesheet" type="text/css" 
  href="lib/css/stil.css" /> 
  <script type="text/javascript" 
 src="lib/js/ajaxeinsendeaufgabe2.js"></script> 
 </head> 
 <body> 
 <h1>Zusatzinformationen</h1> 
 <table> 
 <tr> 
 <td><img class="img" src="img/b1.jpg" data-file="info0" /></td> 
  <td id="info0"></td> 
  </tr> 
  <tr> 
  <td><img class="img" src="img/b2.jpg" /></td> 
    <td id="info1"></td> 
   </tr> 
   <tr> 
   <td><img class="img" src="img/b3.jpg" /></td> 
   <td id="info2"></td> 
   </tr> 
   </table> 
  </body> 
  </html> 

1 个答案:

答案 0 :(得分:0)

您的句柄响应不使用i它具有硬编码“info0”。它应该是:

function handleResponse (i) {
    document.getElementById("info"+i).innerHTML =
    resOb.responseText;
}

你也不需要开关盒,你也可以这样做:

resOb.open('get','info'+i+'.txt',true);

这里是重构小提琴https://jsfiddle.net/pyr2447k/6/的链接 试着看看那个是否有效。