user2620358
user2620358

Reputation: 43

Issue with a resize function after ajax refresh

Im having issues with combining 2 scripts I have javascript code that checks how big my container is and if its bigger than 500 it devides the content into 2 different divs:

function divideStream() {
            if ($("#stream_one_col").width() > 500) {
                var leftHeight = 0;
                var rightHeight = 0;

                $("#stream_one_col").children().each(function() {
                    if (rightHeight < leftHeight) {
                        $("#stream_right_col").append(this);
                        rightHeight += $(this).height();
                        $(this).children().addClass("stream_right_inner");
                    }
                    else {
                        $("#stream_left_col").append(this);
                        leftHeight += $(this).height();
                        $(this).children().addClass("stream_left_inner");
                    }                               
                });
            }
            else {
                $("#content_left").load("php/stream_left.php");
            }
        }

And I have an ajax refresh

$(document).ready(
        function() {
            setInterval(function() {
                $('.aroundit').load('php/stream_left.php');
            $(".aroundit").divideStream();
            }, 3000);
        });

Now basically the reloading goes just fine However, the function (divideStream) wont reload after the ajax is activated Instead it just keeps jumping back and forth Can anyone help me?

Upvotes: 0

Views: 109

Answers (2)

Trevor
Trevor

Reputation: 16116

I'm not quite sure I understand what is happening. But I think you might want to make sure that you run your divideSteam function after the load has completed. You can do it like this.

 $(document).ready(
    function() {
        setInterval(function() {
            $('.aroundit').load('php/stream_left.php', function() {  //this function runs once load has completed
                divideStream();  // as hugo mentioned   
            });
        }, 3000);
    });

Upvotes: 0

Hugo Tostes
Hugo Tostes

Reputation: 412

the function divideStream is not a extend function of jQuery .

You should use this:

$(document).ready(
        function() {
            setInterval(function() {
                $('.aroundit').load('php/stream_left.php');
                divideStream();
            }, 3000);
        });

Upvotes: 1

Related Questions