Q:

What event is fired on page load / hash load

I am working in jQuery Mobile 1.3, and I cannot find the appropriate event for this scenario.
I have a <div> #show_protocol which houses dynamic content. If the browser is left open at this page, and then is refreshed, no content is displayed (because the form submission that populates it has not occurred).
So, I'd like to bind onto an event, check if it's this particular page role <div>, and execute some code if so. I've tried binding to pageshow, pagebeforeload, pageinit, and none seem to work at page load. The code fires when the event is triggered through use of the app, but it is not fired on first page load.
Here's what I've tried:
$("#show_protocol").on( "pageshow", function(){ // swap in pageinit, pagebeforeload, etc.
    if ( $(this).hasClass("preload") ) {
        [..]
    } else {
        [..]
    }
});

Have also tried:
$(document).on( "hashchange", function(){ 

And as @Sudhir points out:
$(document).on( "pageshow", "#show_protocol", function(){ 

None of that works. I'm not sure what events JQM fires on browser first load?
My HTML is basic, should not affect functionality:
<div data-role="page" id="show_protocol">[..]</div>

A:

Thanks to Sudhir for the .bind() suggestion, I was able to implement like so:
 $(document).bind('pageinit', function( e ){ 
    var $id = $( e.target ).attr( "id" );
    if ( $id == 'show_protocol' ){ // check which page is loading
        if ( !$("body").hasClass("preload") ) { // check if already loaded
            $.mobile.changePage( "#protocols" ) // redirect
        }
    }
    $("body").addClass("preload");
 });

