===============
on_after_scroll
===============

on_after_scroll(item)

**domain**: client 

**language**: javascript

**class** :doc:`Item class </refs/client/item_api>`

Description
===========

Occurs after an application scrolls from one record to another.

The ``item`` parameter is an item that triggered the event.

Write an on_after_scroll event handler to take specific action immediately after 
an application scrolls to another record as a result of a call to 
the :doc:`first <m_first>`, :doc:`last <m_last>`, :doc:`next <m_next>`, 
:doc:`prior <m_prior>`, and :doc:`locate <m_locate>` methods. on_after_scroll is 
called after all other events triggered by these methods and any other methods 
that switch from record to record in the item dataset.

Example
=======

The following code is used in the 
:doc:`Demo project </intro/demo_project>`
to asynchronously open **invoice_table** detail dataset after
the **Invoice** journal record has changed:

.. code-block:: js

    var ScrollTimeOut;
    
    function on_after_scroll(item) {
        clearTimeout(ScrollTimeOut);
        ScrollTimeOut = setTimeout(
            function() {
                item.invoice_table.open(function() {});
            },
            100
        );
    }

See also
========

:doc:`Navigating datasets </programming/data/navigating_datasets>`

:doc:`on_before_scroll <on_before_scroll>`