简体   繁体   中英

Can someone please tell me why this js function doesn't run on load?

I've:

 //Resize tabs - height when window size changes. Don't forget to reset niceScroll
 function recalc_tab_height () {
    //
    var wrapper_h = $(".ui-panel-content-wrap").outerHeight();
    var content_h = $(".ui-content").outerHeight();
    var current_h = $(".tab1").outerHeight();
    var newHeight = (wrapper_h - content_h) + current_h;
    //
    $(".tab1, .tab2, .tab3").css({"height":newHeight}).getNiceScroll().resize();
 }
 //Run once onLoad
 recalc_tab_height();

That is supposed to resize lyrics section on-load to fit the screen. But it doesn't run at all... any ideas why? it is inside ui.js

http://mac.idev.ge:800/mobile-radio/

try

$(function() {
    recalc_tab_height();
});

instead of your last line.

$(...) is a shortcut for $(document).ready(...) and is executed as soon as your page is entirely loaded, so that you can deal with DOM element properties.

Try this : Need to set $(document).ready

$(document).ready(function(){

 //Run once onLoad
 recalc_tab_height();

});

To load this function either you should use this on body as

<body onload="recalc_tab_height();" >

or by jquery

$(document).ready(function() {
  recalc_tab_height();
});

Wrap the function call when the dom is ready.Try like this

$(document).ready(function(){
    recalc_tab_height();
});

A page can't be manipulated safely until the document is " ready ." jQuery detects this state of readiness for you. Code included inside $(document).ready() will only run once the page Document Object Model (DOM) is ready for JavaScript code to execute. Code included inside $(window).load(function() { ... }) will run once the entire page (images or iframes), not just the DOM, is ready.

So you have to call your function inside $(document).ready({...}); or $(window).load(function() { ... });

我将css()更改为animate(),并且有效。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM