刷新div

时间:2016-09-05 07:37:27

标签: javascript jquery html ajax

只是一个让我讨厌的问题。 我通过ajax调用对数据库进行了更改,刷新了div,所有这些都没问题,但仍然滚动到页面顶部。

这是我尝试过的:

function postdislike(pid, user, uid) {
"use strict";
//user clicks dislike

var hr = new XMLHttpRequest();
var url = "sections/sendpostdislike.php";
var vars = "pid=" + pid + "&user=" + user + "&uid=" + uid;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

hr.onreadystatechange = function() {
    if(hr.readyState === 4 && hr.status === 200)
    {
        var response = hr.responseText;

        //scrollsave = $('#posted_by-'+pid);
        //scrollsave = $(document).scrollTop();






        $('#profilePosts').load('../'+ target +' #profilePosts > *');
        //$('#posted_by-'+pid).load('../'+ target +' #posted_by-'+pid + ' > *');
        //$('#posted_by-'+pid).scrollTop();

        $('html, body').animate({
         scrollTop: ($('#posted_by-'+pid).offset().top-300)},0);





        //$('#reactsub-' + pid).load('../'+ target +'#reactsub-' + pid + ' > *');

    }
};
hr.send(vars);





}

但无论我做什么,页面总是跳到顶部。我做错了什么?

编辑:设法让它滚动这个,但作为动画,它仍然跳转到顶部滚动之前。有没有办法可以让它留在那里而不会跳到顶部开始?

2 个答案:

答案 0 :(得分:4)

您正在使用

$(window).scrollTop(scrollsave);

首先,scrollTop()不接受任何争论。

其次,如果您在窗口元素上调用scrollTop(),则会滚动到窗口顶部。

scrollTop()上调用#profilePosts,然后就可以了。

答案 1 :(得分:0)

这有效......

function postdislike(pid, user, uid) {
"use strict";

event.preventDefault();

//user clicks dislike

var hr = new XMLHttpRequest();
var url = "sections/sendpostdislike.php";
var vars = "pid=" + pid + "&user=" + user + "&uid=" + uid;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

hr.onreadystatechange = function() {
    if(hr.readyState === 4 && hr.status === 200)
    {
        var response = hr.responseText;

        //scrollsave = $('#posted_by-'+pid);
        //scrollsave = $(document).scrollTop();






        $('#profilePosts').load('../'+ target +' #profilePosts > *');
        //$('#posted_by-'+pid).load('../'+ target +' #posted_by-'+pid + ' > *');
        //$('#posted_by-'+pid).scrollTop();

        //$('html, body').animate({
         //scrollTop: ($('#posted_by-'+pid).offset().top-300)},0);


        //$('#reactsub-' + pid).load('../'+ target +'#reactsub-' + pid + ' > *');

        $(window).on('beforeunload', function() {
            $(window).scrollTop(0);
        });

    }
};
hr.send(vars);

return false;



}