在做分页的时候,出现点击结果网页刷新了
高手可以解释下原理吗?
这样写会导致动态刷新,页面全部刷新了
$("#pageList a").click(function () { var $s = $(this); $.ajax({ url: $s.attr("href"), data: $("form").serialize(), type: "post", success: function (data) { $("#searchbm").html(data); } }) return false; })
修改成:就可以静态无刷新(分装成函数)
var getpage = function () { var $s = $(this); $.ajax({ url: $s.attr("href"), data: $("form").serialize(), type: "post", success: function (data) { $("#searchbm").html(data); } }) return false; }; $("body").on("click", "#pageList a", getpage);
第一种是你后赋值click 而第一种是加载的时候就已经 把pageList 的Click 赋值上了,
可以试一试 ,一样无刷新、
<a onclick=a()>
function a(){
$.ajax({ url: $s.attr("href"), data: $("form").serialize(), type: "post", success: function (data) { $("#searchbm").html(data); } })
}
个人愚见,是你以click方式绑定那段代码。仅限第一页有效,是以你post方式请求的,click的这种绑定,都是已存在的dom元素进行绑定,你的a标签里有href 第一页,由于你的事件生效,并没有以get的方式请求,毕竟return false.这个事件在dom树里不会去冒泡。但是到第二页的时候,此时pagelist里的a是后期添加进去的。应该是没有生效你绑定的click。可以加个alert或者console.log控制台试试。而第二种方式是比较明智的,on属于委托函数,对现在和未来添加的元素都起作用。Jquery多少个版本之前用的live。现在改成on了。可以适当的查查。
32133213213