JavaScript - 功能不起作用

时间:2017-02-05 16:26:11

标签: javascript jquery html dom

使用下面的代码我希望函数在调用时运行,因为现在什么也没发生,函数的名称是否不可接受?

function zoom(d) {
  if (d == "in")
    $("#animation_border").css("height", ($(window).height() * 100 / 85) + "px");
  else
    $("#animation_border").css("height", (canvas.width * 0.719) + "px");

}

if ($(window).width() >= 619) {
  zoom("out");
} else {
  zoom("in");
}
}

2 个答案:

答案 0 :(得分:2)

我假设你想在调整窗口大小时调用zoom()函数。如果是这样,我们可以使用$(window).resize()事件来获得您想要的内容:

function zoom(d) {
  if (d == "in") {
    // Your code here
  } else {
    // Your code here
  };
}

// Automatically called when window is resized
$(window).resize(function() {
  if ($(window).width() >= 619) {
    zoom("out");
  } else {
    zoom("in");
  };
})

使用JSFidde:https://jsfiddle.net/209m4esk/2/

作为旁注,比较zoom()函数中的布尔值而不是字符串会更有效。我们还应该允许给函数提供无效参数。即:

function zoom(zoomIn) {
  if (typeof(zoomIn) !== "boolean") {
      console.log("Parameter given is not a boolean.");
  } else if (zoomIn) {
    // Your code here
  } else {
    // Your code here
  };
}

因此,您只需拨打zoom(true)即可放大,zoom(false)可缩小。

答案 1 :(得分:1)

  • 首先你有}
  • 将您的代码放入window.resize

    (function(){
    function zoom(d) {
      if (d == "in")
        $("#animation_border").css("height", ($(window).height() * 100 / 85) + "px");
      else
        $("#animation_border").css("height", (canvas.width * 0.719) + "px");
    
    }
    
    $(window).resize(function(){
        if ($(window).width() >= 619) {
          zoom("out");
        } else {
          zoom("in");
        }
    })})();