繁体   English   中英

Javascript:将代码放入函数后不会执行

[英]Javascript: Code doesn't get executed when put into function

我有这个工作的Javascript代码,它对initresize一些resize

(function (w) {

  w.init = function () {

    var w = window.innerWidth;
    var h = window.innerHeight; 

    //resize_font;
    var fs = parseInt(w / 26);   
    document.body.style.fontSize = fs + "px";

    //resize_cover;
    var logo = get_by_id("logo");
    var logo_height = logo.clientHeight;  
    var menu = get_by_id("menu");
    var menu_height = menu.clientHeight; 
    var cover_height = logo_height + menu_height;
    var distance_top = (h - cover_height) / 2.5;

    var container = get_by_id("container");
    container.style.paddingTop = distance_top + "px"; 
  }

  w.resize = function () {

    var w = window.innerWidth;
    var h = window.innerHeight; 

    //resize_font;
    var fs = parseInt(w / 26);   
    document.body.style.fontSize = fs + "px";

    //resize_cover;
    var logo = get_by_id("logo");
    var logo_height = logo.clientHeight;  
    var menu = get_by_id("menu");
    var menu_height = menu.clientHeight; 
    var cover_height = logo_height + menu_height;
    var distance_top = (h - cover_height) / 2.5;

    var container = get_by_id("container");
    container.style.paddingTop = distance_top + "px"; 
  }
}

现在,我想重构用于调整字体大小和覆盖范围的代码,但是无法正常工作。 我尝试了这个:

(function (w) {

  w.init = function () {
    var w = window.innerWidth;
    var h = window.innerHeight; 

    resize_font;
    resize_cover;
  }

  w.resize = function () {
    var w = window.innerWidth;
    var h = window.innerHeight; 

    resize_font;
    resize_cover;
  }

  function resize_cover() {
    var logo = get_by_id("logo");
    var logo_height = logo.clientHeight;  
    var menu = get_by_id("menu");
    var menu_height = menu.clientHeight; 
    var cover_height = logo_height + menu_height;
    var distance_top = (h - cover_height) / 2.5;

    var container = get_by_id("container");
    container.style.paddingTop = distance_top + "px";        
  }

  function resize_font() {
    var fs = parseInt(w / 26);   
    document.body.style.fontSize = fs + "px";        
  }
}

控制台不会显示任何错误,但不会调整大小。 我究竟做错了什么?

您需要在init和resize事件函数中调用函数。 你有:

resize_font;
resize_cover;

你需要:

resize_font();
resize_cover();

函数的名称只是对该函数的引用,这就是为什么看不到任何错误的原因。 您目前所拥有的类似于:

var x = 1;
x;

看来您的问题是这样的:

resize_font;
resize_cover;

我想你是说

resize_font();
resize_cover();

似乎您忘记了执行功能,只是提到了指针。

请尝试更改:

resize_font;
resize_cover;

resize_font();
resize_cover();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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