昨天在做一个类似于帮助文档型的页面,左边是导航,右边显示的是内容。本来打算右边内容显示区域用iframe来实现,但由于要做iframe的适应高度所以就换了一种方法,使用jquery的ajax中的load方法。
获取远程文件中的内容很容易实现,直接使用jquery的load方法:
$("#content").load("xxx.aspx")
这样很容易将xxx.aspx文件中的内容放在id为content的标签中。现在还要实现的一个效果是:当我获取文件的内容后,要跳到相应的锚点,于是就想到使用jquery的scrollTop,例如我获取文件内容后,要调到id="name"的标签:
$("body,html").animate({scrollTop:$("#name").offset().top})
offset()就是获取匹配元素在当前视口的相对偏移,$("#name").offset().top就是获取ID为name的标签在当前视口距顶部的相对偏移。以上代码综合在一块需这样写:
$(function(){
$("#content").load("xxx.aspx",function(){
$("body,html").animate({scrollTop:$("#name").offset().top})
})
})
为了避免点击导航不断的对服务器发送请求,我们可以将每次获取到的数据存储起来。
当然,这个方法只适合不考虑SEO优化的页面使用。
希望本文所述对大家的jQuery程序设计有所帮助。
第二个页面和第三个页面div的id不对,改成下面的代码即可
<div id="main">这里是第二页内容
<a href="javascript:$('#main').load('3.html #main')">点击加载第三页</a>
</div> <div id="main">
这里是第三页内容
<a href="javascript:$('#main').load('2.html #main')">点击加载第二页</a>
</div>
jquery load方法用法详解
1.load定义和用法,load() 方法通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中。jquery load是jquery ajax中的一种功能,load可以方便快速的直接加载一个页面到指定div中(html,php),并且它可以带参数。
2.还存在一个名为 load 的 jQuery 事件方法。调用哪个,取决于参数。
下面是几个例子:
1).加载一个php文件,该php文件不含传递参数
$("#myID").load("test.php")2).加载一个php文件,该php文件含有一个传递参数
$("#myID").load("test.php",{"name" : "Adam"})//导入的php文件含有一个传递参数,类似于:test.php?name=Adam
或者直接
$("#divResult").load("jqueryLoad?username=" + username + "&un="+$("#username").val()+"&timestamp=" + (new Date()).getTime())
3).使用 AJAX 请求来改变 div 元素的文本
$("button").click(function(){$("div").load('demo_ajax_load.txt')
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)