jquery 变量未更新超出调整大小

jquery variable not updating out of resize

考虑以下代码段:-

jQuery(document).ready(function($){
  var window_width=$(window).width();
  function myresize(){
    window_width=$(window).width();
    console.log('============window width='+window_width+' =========================');
  }
  $(window).resize(myresize);
  if (window_width<options.hide_width){
    console.log('============window width='+window_width+' =========================');
  }
  else
  {
    console.log('============window width='+window_width+' =========================');
  });`

当我调整大小时,window_width 的正确值会被记录下来。但是,下面的条件代码仍然表现得好像我没有调整大小一样。如果我随后进行页面刷新,则正确的条件运行,并记录新的 window 大小。

所以我的问题是,如果 window_width 的值正确 ,为什么正确的条件部分在调整大小后不运行?

我对 jquery 还是很陌生,所以如果它有些愚蠢,请原谅我的无知,但我在这里兜圈子,无法 google 任何类型的答案。关于这个的许多类似问题也让我无处可去。

谢谢。

我想我明白你的意思了。

if-else 条件将 运行 只有在事件侦听器绑定到 window 后文档准备好时才会出现一次: $(window).resize(myresize);

如果您想在 window 调整大小时使用 if-else 子句 运行,请将整个 if-else 放入 myresize 函数中。

$(document).ready(function () {
    var window_width = $(window).width();

    function myresize() {
        console.log(window_width);
        window_width = $(window).width();
        console.log('============window width=' + window_width + ' =========================');

        if (window_width < options.hide_width) {
            console.log('============window width=' + window_width + ' =========================');
        } else {
            console.log('============window width=' + window_width + ' =========================');
        }
    }

    $(window).resize(myresize);
});