为什么我的功能在窗口调整大小之前运行?

时间:2016-09-02 07:29:00

标签: javascript html

我希望标题在重新调整窗口大小时更改它的颜色。但是在我加载网站后,changeColor()会立即运行。谁能解释一下,为什么我的changeColor()函数在窗口重新调整大小之前运行?



<body>
  <h1>JavaScript</h1>
  <script>
    var heading = document.querySelector("h1");

    function changeColor(colour) {
      heading.style.color = colour;
    }
    window.onresize = changeColor("red");
  </script>
</body>
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:1)

您正在以自己的方式执行“changeColor”功能。

试试这个:

<body>
  <h1>JavaScript</h1>
  <script>
    var heading = document.querySelector("h1");

    function changeColor(colour) {
      heading.style.color = colour;
    }

    window.onresize = function() {
        changeColor("red")
    };
  </script>
</body>

答案 1 :(得分:0)

您要将changeColor的通话结果分配给window.onresize,而不是功能changeColor本身。您的代码相当于:

var temp = changeColor("red"); // undefined, because changeColor doesn't return anything
window.onresize = temp;

您可以做的是创建一个函数,该函数返回一个使用所需颜色的函数:

function createColorChangeCallback(color) {
  return function() {
    heading.style.color = color; // color variable captured from enclosing function
  };
}
window.onresize = createColorChangeFunction("red");

或者您可以使用.bind或lambda:

window.onresize = function() {
  changeColor("red");
};

这两者都相当于:

window.onresize = function() {
  heading.style.color = "red";
};

答案 2 :(得分:0)

您正在调用该函数。

使用它:

window.onresize = changeColor.bind(this,"red");

现在,你的程序执行是:

  

changeColor(红色) - &gt;将其返回值分配给window.onresize

答案 3 :(得分:0)

你应该尝试这样的事情,这应该可以解决问题

<body onresize="changeColor('red');">

答案 4 :(得分:0)

 Glide.with(context).load(holder.imageview)
                .placeholder(R.drawable.logo).centerCrop()
                .into(holder.imageview);

试试这个......