首页 新闻 搜索 专区 学院

ajax静态分页刷新,为什么会出现全局刷新?

0
悬赏园豆:10 [已解决问题] 解决于 2016-04-15 09:59

在做分页的时候,出现点击结果网页刷新了

高手可以解释下原理吗?

 

这样写会导致动态刷新,页面全部刷新了

        $("#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);

 

 

少时不知贵的主页 少时不知贵 | 初学一级 | 园豆:86
提问于:2016-03-23 21:14
< >
分享
最佳答案
0

第一种是你后赋值click  而第一种是加载的时候就已经 把pageList 的Click 赋值上了, 

可以试一试 ,一样无刷新、

<a onclick=a()>

function a(){

$.ajax({ url: $s.attr("href"), data: $("form").serialize(), type: "post", success: function (data) { $("#searchbm").html(data); } })

}

收获园豆:6
多罗贝勒 | 初学一级 |园豆:16 | 2016-03-24 09:44
其他回答(2)
0

个人愚见,是你以click方式绑定那段代码。仅限第一页有效,是以你post方式请求的,click的这种绑定,都是已存在的dom元素进行绑定,你的a标签里有href 第一页,由于你的事件生效,并没有以get的方式请求,毕竟return false.这个事件在dom树里不会去冒泡。但是到第二页的时候,此时pagelist里的a是后期添加进去的。应该是没有生效你绑定的click。可以加个alert或者console.log控制台试试。而第二种方式是比较明智的,on属于委托函数,对现在和未来添加的元素都起作用。Jquery多少个版本之前用的live。现在改成on了。可以适当的查查。

收获园豆:4
贫民窟大侠 | 园豆:4274 (老鸟四级) | 2016-03-24 10:22
0

32133213213

firefox7557 | 园豆:202 (菜鸟二级) | 2021-10-12 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册