您当前的位置: 首页 > 前端教程 > JS教程 > 不错的Ajax创建工具提示

不错的Ajax创建工具提示

作者:不详 来源:网络 发布时间: 2011-12-21 13:54 点击:
!DOCTYPE HTML PUBLIC-//W3C//DTD HTML4.0Transitional//EN HTML HEAD TITLENew Document/TITLE META NAME=Generator CONTENT=EditPlus META NAME=Author CONTENT= META NAME=Keywords CONTENT= META NAME=Description CONTENT= /HEAD BODY script type=text/javascrip

不错的Ajax创建工具提示

  <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML4.0Transitional//EN">
  
  <HTML>
  
  <HEAD>
  
  <TITLE>New Document</TITLE>
  
  <META NAME="Generator" CONTENT="EditPlus">
  
  <META NAME="Author" CONTENT="">
  
  <META NAME="Keywords" CONTENT="">
  
  <META NAME="Description" CONTENT="">
  
  </HEAD>
  
  <BODY>
  
  <script type="text/javascript">
  
  var xmlHttp;
  
  var dataDiv;
  
  var dataTable;
  
  var dataTableBody;
  
  var offsetEl;
  
  function createXMLHttpRequest()
  
  {
  
  if(window.ActiveXObject)
  
  {
  
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  
  }else
  
  {
  
  xmlHttp=new XMLHttpRequest();
  
  }
  
  }
  
  function initVars()
  
  {
  
  dataTableBody=document.getElementById("courseDataBody");
  
  dataTable=document.getElementById("courseData");
  
  dataDiv=document.getElementById("popup");
  
  }
  
  function getCourseData(element)
  
  {
  
  initVars();
  
  createXMLHttpRequest();
  
  offsetEl=element;
  
  var url="ToolTipServlet?key="+escape(element.id);
  
  xmlHttp.Open("GET",url,true);
  
  xmlHttp.onreadystatechange=callback;
  
  xmlHttp.send(null);
  
  }
  
  function callback()
  
  {
  
  if(xmlHttp.readyState==4)
  
  {
  
  if(xmlHttp.status==200)
  
  {
  
  setData(xmlHttp.responseXML);
  
  }
  
  }
  
  }
  
  function setData(courseData)
  
  {
  
  clearData();
  
  setOffsets();
  
  var length=courseData.getElementsByTagName("length")[0].firstChild.data;
  
  var par=courseData.getElementsByTagName("par")[0].firstChild.data;
  
  var row,row2;
  
  var parData="Par:"+par;
  
  var lengthData="Length:"+length;
  
  row=createRow(parData);
  
  row2=createRow(lengthData);
  
  dataTableBody.appendChild(row);
  
  dataTableBody.appendChild(row2);
  
  }
  
  function createRow(data)
  
  {
  
  var row,cell,textNode;
  
  row=document.createElement("tr");
  
  cell=document.createElement("td");
  
  cell.setAttribute("bgcolor","#FFFAFA");
  
  cell.setAttribute("border",0);
  
  textNode=document.createTextNode(data);
  
  cell.appendChild(textNode);
  
  row.appendChild(cell);
  
  return row;
  
  }
  
  function setOffsets()
  
  {
  
  var end=offsetEl.offsetWidth;
  
  var top=calculateOffsetTop(offsetEl);
  
  dataDiv.style.border="black1px solid";
  
  dataDiv.style.left=end+15+"px";
  
  dataDiv.style.top=top+1+"px";
  
  }
  
  function calculateOffsetTop(field)
  
  {
  
  return calculateOffset(field,"offsetTop")
  
  }
  
  function calculateOffset(field,attr)
  
  {
  
  var offset=0;
  
  while(field)
  
  {
  
  offset+=field[attr];
  
  field=field.offsetParent;
  
  }
  
  return offset;
  
  }
  
  function clearData()
  
  {
  
  var index=dataTableBody.childNodes.length;
  
  for(var i=index-1;i>=0;i--)
  
  {
  
  dataTableBody.removeChild(dataTableBody.childNodes[i]);
  
  }
  
  dataDiv.style.border="none";
  
  }
  
  </script>
  
  <h1>Ajax Tool Tip Example</h1>
  
  <h3>Golf Coursers</h3>
  
  <table id="courses" bgcolor="#FFFAFA" border="1" cellpadding="0" cellspacing="0">
  
  <tbody>
  
  <tr><td id="1" onmouseover="getCourseData(this);" onmouseout="clearData()">
  
  Augusta National
  
  </td></tr>
  
  <tr><td id="2" onmouseover="getCourseData(this);" onmouseout="clearData()">
  
  Pinehurst No.2
  
  </td></tr>
  
  <tr><td id="3" onmouseover="getCourseData(this);" onmouseout="clearData()">
  
  St.andrews links
  
  </td></tr>
  
  <tr><td id="4" onmouseover="getCourseData(this);" onmouseout="clearData()">
  
  Baltusrol golf club
  
  </td></tr>
  
  </tbody>
  
  </table>
  
  <div style="position:absolute;" id="popup">
  
  <table id="courseData" bgcolor="#fffafa" border="0" cellpadding="2" cellspacing="2">
  
  <tbody id="courseDataBody"></tbody>
  
  </table>
  
  </div>
  
  </BODY>
  
  </HTML>
  
  -----------ToopTipServlet.java-----------------------------
  
  package com.ajax;
  
  import java.io.*;
  
  import java.util.HashMap;
  
  import java.util.Map;
  
  import javax.servlet.*;
  
  import javax.servlet.http.*;
  
  public class ToolTipServlet extends HttpServlet
  
  {
  
  private Map courses=new HashMap();
  
  public void init(ServletConfig conifg)throws ServletException
  
  {
  
  CourseData augusta=new CourseData(72,7290);
  
  CourseData pinehurst=new CourseData(70,7214);
  
  CourseData standrews=new CourseData(72,6565);
  
  CourseData baltusrol=new CourseData(70,7392);
  
  courses.put(new Integer(1),augusta);
  
  courses.put(new Integer(2),pinehurst);
  
  courses.put(new Integer(3),standrews);
  
  courses.put(new Integer(4),baltusrol);
  
  }
  
  protected void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
  
  {
  
  Integer key=Integer.valueOf(request.getParameter("key"));
  
  CourseData data=(CourseData)courses.get(key);
  
  PrintWriter out=response.getWriter();
  
  response.setContentType("text/xml");
  
  response.setHeader("Cache-Control","no-cache");
  
  out.println("<response>");
  
  out.println("<par>"+data.getPar()+"</par>");
  
  out.println("<length>"+data.getLength()+"</length>");
  
  out.println("</response>");
  
  out.close();
  
  }
  
  private class CourseData
  
  {
  
  private int par;
  
  private int length;
  
  public CourseData(int par,int length)
  
  {
  
  this.par=par;
  
  this.length=length;
  
  }
  
  public int getPar()
  
  {
  
  return this.par;
  
  }
  
  public int getLength()
  
  {
  
  return this.length;
  
  }
  
  }
  
  }

分享到:
本文"不错的Ajax创建工具提示"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4