Jquery 访问函数逻辑之外的变量 $(窗口).on(“加载调整大小”,函数(){ 如果($(窗口).width()

Jquery 访问函数逻辑之外的变量 $(窗口).on(“加载调整大小”,函数(){ 如果($(窗口).width(),jquery,variables,scope,global,Jquery,Variables,Scope,Global,我想在这个函数之外访问这两个变量(menuHeight,contactHeight),以便在其他地方使用。我正在测量一个模型的顶部高度,但我不希望它在调整大小时有响应,而不仅仅是加载(在这种情况下,似乎一个简单的If/Else就可以了。)我可能需要一些关于范围的知识。谢谢 您需要在以下操作之前定义它们: $(window).on("load resize", function () { if ($(window).width() < 768) { me

我想在这个函数之外访问这两个变量(menuHeight,contactHeight),以便在其他地方使用。我正在测量一个模型的顶部高度,但我不希望它在调整大小时有响应,而不仅仅是加载(在这种情况下,似乎一个简单的If/Else就可以了。)我可能需要一些关于范围的知识。谢谢

您需要在以下操作之前定义它们:

   $(window).on("load resize", function () {
      if ($(window).width() < 768) {
          menuHeight = '0px';
          contactHeight = '100%';
      } else {
          menuHeight = ($('#desktop-menu').height() + 'px').toString();
          contactHeight = ($('.get-in-touch-home').outerHeight() + 'px').toString();
      }
   });

您需要在以下操作之前定义它们:

   $(window).on("load resize", function () {
      if ($(window).width() < 768) {
          menuHeight = '0px';
          contactHeight = '100%';
      } else {
          menuHeight = ($('#desktop-menu').height() + 'px').toString();
          contactHeight = ($('.get-in-touch-home').outerHeight() + 'px').toString();
      }
   });

您可以在函数外部定义它们。另外,由于
load
在页面加载过程中发生得比较晚,因此您需要主动初始化它们,然后更新它们以响应
load
resize
。这表明您需要一个可重用的函数:

var menuHeight = '';
var contactHeight = '';

$(window).on("load resize", function () {
    if ($(window).width() < 768) {
        menuHeight = '0px';
        contactHeight = '100%';
    } else {
        menuHeight = ($('#desktop-menu').height() + 'px').toString();
        contactHeight = ($('.get-in-touch-home').outerHeight() + 'px').toString();
    }
});
window.menuHeight = '';
window.contactHeight = '';

我不是你的粉丝。如果需要调用函数,只需调用它。

您可以在函数外部定义它们。另外,由于
load
在页面加载过程中发生得比较晚,因此您需要主动初始化它们,然后更新它们以响应
load
resize
。这表明您需要一个可重用的函数:

var menuHeight = '';
var contactHeight = '';

$(window).on("load resize", function () {
    if ($(window).width() < 768) {
        menuHeight = '0px';
        contactHeight = '100%';
    } else {
        menuHeight = ($('#desktop-menu').height() + 'px').toString();
        contactHeight = ($('.get-in-touch-home').outerHeight() + 'px').toString();
    }
});
window.menuHeight = '';
window.contactHeight = '';

我不是你的粉丝。如果你需要调用一个函数,只需调用它。

如果你还没有在某个地方声明
menuHeight
contactHeight
,那么这个代码就是牺牲品(这是我贫血小博客上的一篇文章)。请务必声明您的变量。:-)如果你没有在某个地方声明
menuHeight
contactHeight
,那么这个代码就是我贫血小博客上的一篇文章。请务必声明您的变量。:-)我将继续尝试这些。非常感谢。因此,我希望能够在下面的代码中使用这个“更新”变量,但它似乎只能得到初始值<代码>$(“#contact-modal-1”).animatedModal({modalTarget:'contact-modal',animatedIn:'slideInUp',animatedOut:'slideOutDown',overflow:'scroll',position:'fixed',top:menuHeight,animationDuration:'.7s',color:'对格式错误表示歉意。@ChrisJohnson请从我的代码中尝试getHeight()函数。@ChrisJohnson:它不会只获取初始值,除非您在获取初始值时这样做。如果您需要在值更改时更新该模式,则需要在更新值后从更改处理程序调用某些内容。谢谢大家,我们将尝试这些!我将继续尝试这些。非常感谢。因此,我希望能够在下面的代码中使用这个“更新”变量,但它似乎只能得到初始值<代码>$(“#contact-modal-1”).animatedModal({modalTarget:'contact-modal',animatedIn:'slideInUp',animatedOut:'slideOutDown',overflow:'scroll',position:'fixed',top:menuHeight,animationDuration:'.7s',color:'对格式错误表示歉意。@ChrisJohnson请从我的代码中尝试getHeight()函数。@ChrisJohnson:它不会只获取初始值,除非您在获取初始值时这样做。如果您需要在值更改时更新该模式,则需要在更新值后从更改处理程序调用某些内容。谢谢大家,我们将尝试这些!不确定是否可以使用“窗口”,因为这是一个节点项目,至少我在这里读到了;)@克里斯·约翰逊:你问题中的代码显然是基于浏览器的,并且已经在使用
窗口
:-)您可能正在使用节点编写其中的服务器部分,但此部分基于浏览器。但不要使用window.menuHeight等;这样做需要它们是全局变量,这是一件坏事™.@T.J.Crowder他们是邪恶的:-)在万不得已的情况下使用全局变量,但大多数时候你都不需要它。不确定我是否可以使用“窗口”,因为这是一个节点项目,至少我在这里读到了;)@克里斯·约翰逊:你问题中的代码显然是基于浏览器的,并且已经在使用
窗口
:-)您可能正在使用节点编写其中的服务器部分,但此部分基于浏览器。但不要使用window.menuHeight等;这样做需要它们是全局变量,这是一件坏事™.@T.J.Crowder他们是邪恶的:-)在万不得已的情况下使用全局变量,但大多数时候你并不需要它。
$("selector").on("event", function() {
    // ...
}).triger("event");