javascript - how to scroll to a specific div when a radio button is clickedchanged - Stack Overflow

I am trying to scroll the page to "#Table_Details" using the scroll plug in. But i can't

I am trying to scroll the page to "#Table_Details" using the scroll plug in. But i can't seem to get it working.

When i click/change the radio(.ModemsSelect) button the page scrolls to the location of the radio button i just clicked instead of scrolling down the page where my table("#table_Details") is located. I am not sure if i am doing this right or what is going on.

$(".ModemsSelect,.ServicesSelect").change(function (e) {
    var data = $("#" + this.value).serialize();
    var request = $.ajax({
        url: "classes/sCart.php?action=add",
        type: "POST",
        data: data,
        dataType: "html",
        radioButton: $(this).attr('class')
    });
    request.success(function (data) {
        //$(".in_cart").html("");//clear last item selected
        console.log("extra item added to cart");
        refreshCart();
        if (this.radioButton == "ModemsSelect") {
            $.scrollTo($('#Table_Details'));

            $("#icon_check_modem").html("");
            $("#icon_check_modem").html("<img src=\"../img/check_icon.png\">");
            $('.Modem_buttonNext').button("enable");
        } else if (this.radioButton == "ServicesSelect") {
            $("#icon_check_Installtype").html("");
            $("#icon_check_Installtype").html("<img src=\"../img/check_icon.png\">");
            $(".install_buttonNext").button("enable");
        } else {

        }
    });
});

Any help is appreciated. thank you.

I am trying to scroll the page to "#Table_Details" using the scroll plug in. But i can't seem to get it working.

When i click/change the radio(.ModemsSelect) button the page scrolls to the location of the radio button i just clicked instead of scrolling down the page where my table("#table_Details") is located. I am not sure if i am doing this right or what is going on.

$(".ModemsSelect,.ServicesSelect").change(function (e) {
    var data = $("#" + this.value).serialize();
    var request = $.ajax({
        url: "classes/sCart.php?action=add",
        type: "POST",
        data: data,
        dataType: "html",
        radioButton: $(this).attr('class')
    });
    request.success(function (data) {
        //$(".in_cart").html("");//clear last item selected
        console.log("extra item added to cart");
        refreshCart();
        if (this.radioButton == "ModemsSelect") {
            $.scrollTo($('#Table_Details'));

            $("#icon_check_modem").html("");
            $("#icon_check_modem").html("<img src=\"../img/check_icon.png\">");
            $('.Modem_buttonNext').button("enable");
        } else if (this.radioButton == "ServicesSelect") {
            $("#icon_check_Installtype").html("");
            $("#icon_check_Installtype").html("<img src=\"../img/check_icon.png\">");
            $(".install_buttonNext").button("enable");
        } else {

        }
    });
});

Any help is appreciated. thank you.

Share Improve this question edited Oct 7, 2013 at 16:08 Tushar Gupta - curioustushar 57.1k24 gold badges106 silver badges109 bronze badges asked Oct 7, 2013 at 16:03 zeid10zeid10 5218 silver badges30 bronze badges 1
  • You should wait to scroll until you're done modifying the page's html. You're starting the scrollTo call, and jQuery calculates the position it needs to scroll into view. Then, you change the page layout with calls to html(), but jQuery already started the scroll movement. So, it doesn't wind up in the right place. My suggestion is to move that scrollTo call to the end, and wrap it in a setTimeout with like 500ms delay. – Chris Baker Commented Oct 7, 2013 at 16:06
Add a ment  | 

2 Answers 2

Reset to default 3

working fiddle http://jsfiddle/ePstY/

You must replace this:

$.scrollTo($('#Table_Details'));

with this:

$('html, body').animate({scrollTop:$('#Table_Details').position().top}, 'slow');

Try doing it this

$('html, body').animate({
  scrollTop: $("#Table_Details").offset().top
}, 2000);

Instead of this:

$.scrollTo($('#Table_Details'));

I got the code from this article: SMOOTHLY SCROLL TO AN ELEMENT WITHOUT A JQUERY PLUGIN

Here's a working fiddle

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744310460a4567921.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信