html页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>jQuery</title>
<script type="text/javascript" src="jquery1.3.2.js"></script>
<style type="text/css">
body,h1,h2,h3,h4,h5,h6,p,ul,li,dl,dt,dd{padding:0;margin:0;}
li{list-style:none;}img{border:none;}em{font-style:normal;}
a{color:#555;text-decoration:none;outline:none;blr:this.onFocus=this.blur();}
a:hover{color:#000;text-decoration:underline;}
body{font-size:12px;font-family:Arial,Verdana, Helvetica, sans-serif;word-break:break-all;word-wrap:break-word;}
.clear{height:0;overflow:hidden;clear:both;}
.UpLayer{ margin:100px;}
.UpLayer dl dt{width:50px;position:absolute; z-index:3;padding:0 5px;line-height:20px;}
.UpLayer02{border:#ccc 1px solid; border-bottom:none;background:#f1f1f1; margin:-1px 0 0 -1px;}
.UpLayer dl dd{ width:80px;position:absolute;z-index:2;border:#ccc 1px solid;padding:5px; line-height:20px; background:#f1f1f1; display:none; margin:19px 0 0 -1px;}
.UpLayer dl dd a{ display:block;border-bottom:#ccc 1px dashed;}
</style>
<script type="text/javascript">
$(document).ready(function() {
var objStr = ".UpLayer";
$(objStr).each(function(i) {
$(this).click(function() {
$($(objStr + " dd")[i]).show();
$($(objStr + " dt")[i]).addClass("UpLayer02");
});
$(this).hover(function() { }, function() {
$($(objStr + " dd")[i]).hide();
$($(objStr + " dt")[i]).removeClass("UpLayer02");
});
}); //end for each
});
//为首层链接挂接事件
$(document).ready(function() {
var _obj = $("dl dt span a");
_obj.click(function() {
var _vls = _obj.attr("vls");
LoadXmlData(_vls);//加载XML数据
$("#ViewMsg").html(_vls);
});
});
function reLoadEvent() {
//为下面a标签挂接事件
$(document).ready(function() {
$("dl dd a").click(function() {
var _obj = $("dl dd a");
var _objValue = $(this).attr("vls");
UpData(_objValue);//调用函数
$("#ViewMsg").html(_objValue);
});
});
}
//更新
function UpData(_vlsId) {
var _updata = "updata";
$.ajax({
url: 'do.ashx',
type: 'POST',
dataType: 'text', //xml json text
data: { updata: _updata, vlsid: _vlsId },
timeout: 1000,
beforeSend: loading,
error: function(xml) {
alert('Error loading XML document' + xml);
},
success: function(xml) {
if (xml == 1) {
alert("OK");
}
}
});
}
//加载xml数据
function LoadXmlData(_vlsId) {
var _loadvalue = "loadvalue";
var _html = "";
var _Vobj = null;
$.ajax({
url: 'do.ashx',
type: 'POST',
dataType: 'xml', //这里可以不写,但千万别写text或者html!!!
data: { loadvalue: _loadvalue, vlsid: _vlsId },
timeout: 1000,
beforeSend:loading,
error: function(xml) {
alert('Error loading XML document' + xml);
},
success: function(xml) {
$("dl dd").html("");
$(xml).find("listitem").each(function(i) {
var item_vls = $(this).children("vls").text(); //取文本
var item_txt = $(this).children("item").text(); //取文本
_Vobj = null;
_Vobj = "<a href=/"#/" vls=/"" + item_vls + "/">" + item_txt + item_vls + "</a>";
_html += _Vobj;
});
$("dl dd").html(_html);
reLoadEvent();//一定要挂接事件,因为所有html代码已经被改变了
}
});
}
function loading() {
$("dl dd").html("loading....");
}
</script>
</head>
<body>
<div>
<div class="UpLayer">
<dl>
<dt><span id="span1"><a href="#" vls="99">弹出层</a></span></dt>
<dd>
</dd>
</dl>
</div>
<div class="UpLayer">
<dl>
<dt><span id="span2"><a href="#" vls="98">弹出层2</a></span></dt>
<dd>
</dd>
</dl>
</div>
<div id="ViewMsg">
</div><br/><br/></div>
如果网页有出错提示,请刷新页面再试。
</body>
</html>
do.ashx:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Text;
namespace WebApplication1
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class _do : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Clear out the buffer
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.Clear();
// Do not cache response
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = "text/xml";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Expires = 0;
foreach (String o in context.Request.Params.AllKeys)
{
//取得参数值
if (String.Compare(o.ToLower(), "loadvalue".ToLower()) == 0)
{
context.Response.Write(LoadValData(context));
break;
}
if (String.Compare(o.ToLower(), "updata".ToLower()) == 0)
{
context.Response.Write(Updata(context));
break;
}
}
context.Response.Flush();
context.Response.Clear();
// Complete the request. NOTE: Do not use Response.End() here,
// because it throws a ThreadAbortException, which cannot be caught!
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <returns>0出错</returns>
private Int32 Updata(HttpContext context)
{
Int32 _rt = 1;
try
{
object _usrObj = context.Request.Params["vlsid"];
//更新..删除...
}
catch (System.Exception)
{ _rt = 0; }
return _rt;
}
private String LoadValData(HttpContext context){
object _usrObj = context.Request.Params["vlsid"];
//return "1";
StringBuilder _sxb = new StringBuilder(1024);
_sxb.AppendLine("<?xml version=/"1.0/" encoding=/"UTF-8/"?>");
_sxb.AppendLine("<list>");
_sxb.AppendLine("<listitem>");
_sxb.AppendLine("<item>菜单一</item>");
_sxb.AppendLine("<vls>10</vls>");
_sxb.AppendLine("</listitem>");
_sxb.AppendLine("<listitem>");
_sxb.AppendLine("<item>菜单二</item>");
_sxb.AppendLine("<vls>11</vls>");
_sxb.AppendLine("</listitem>");
_sxb.AppendLine("<listitem>");
_sxb.AppendLine("<item>菜单三</item>");
_sxb.AppendLine("<vls>12</vls>");
_sxb.AppendLine("</listitem>");
_sxb.AppendLine("</list>");
_sxb.AppendLine("");
return _sxb.ToString();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}