How to return function in document ready?
- by FatDogMark
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();
}
});
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.