How to return function in document ready?

Posted by FatDogMark on Stack Overflow See other posts from Stack Overflow or by FatDogMark
Published on 2012-11-27T04:51:24Z Indexed on 2012/11/27 5:04 UTC
Read the original article Hit count: 114

Filed under:
|
|

I don't know if it is possible to do this, like I have 2 js files. The first Js File:

 var news_pos,
     about_pos,
     services_pos,
     clients_pos;

    function define_pos(){
               var $top_slides=$('#top_slides'),
                   $mid_nav=$('#mid_nav'),
                   $news_section=$('#section-1');
               var fixed_height = $top_slides.height()+$mid_nav.height();
                news_pos    = fixed_height-20 ;
                   about_pos    = fixed_height+$news_section.height();
                services_pos    = fixed_height+$news_section.height()*2;
                 clients_pos    = fixed_height+$news_section.height()*3;
    }
    $(document).ready(function(){
         var section_news = $('#section-1'),
             section_about = $('#section-2'),
             section_services = $('#section-3'),
             section_clients = $('#section-4');
       setheight();
       function setheight(){
          var section_height=$(window).height()+200;
          $section_news.height(section_height);
          $section_about.height(section_height); 
          $section_services.height(section_height);
          $section_clients.height(section_height);
          define_pos();
       }
});
  1. The second JS File:

    $(document).ready(function(){
        var nav = {
                   '$btn1':$('#btn1'),
                   '$btn2':$('#btn2'),
                   '$btn3':$('#btn3'),
                   '$btn4':$('#btn4'),
                   '$btn5':$('#btn5'), myclick : function(){
    
                        myclicked(nav.$btn1,0);
                        myclicked(nav.$btn2,news_pos);
                        myclicked(nav.$btn3,about_pos);
                        myclicked(nav.$btn4,services_pos);
                        myclicked(nav.$btn5,clients_pos);
    
                        function myclicked(j,k){            
                    j.click(function(e) {   
                        e.preventDefault();
                           $('html,body').animate({scrollTop: k}, 1000);
                           });
                        }
                  //Is it right to do return{'myclick':myclick}, how to call? seems not logical
                   }
           }
      nav.myclick(); // Here will not work because it say news_pos is undefined
      //if I use setTimeout(nav.myclick,1000), it will works but I want to run it right the when position is caculated.
      });
    

How do I pass the nav.myclick() function to the frist js file and put it in setheight() and under define_pos()? By the way writing codes right in stackoverflow is strange,press tab not really give you any spacing.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery