Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript函数中设置新的变量值?_Javascript_Function_Variables_Set - Fatal编程技术网

如何在javascript函数中设置新的变量值?

如何在javascript函数中设置新的变量值?,javascript,function,variables,set,Javascript,Function,Variables,Set,我有两个导航按钮“a”和“b”,其中“a”链接到“a”页,“b”链接到“b”页。加载页面时,页面“A”默认可见,页面“B”默认隐藏。单击链接“b”时,页面“A”淡入不透明度0,并通过jQuery“切换”方法降低高度,而页面“b”淡入不透明度1,并通过jQuery“切换”方法将高度增加到全尺寸。当再次单击链接“a”时,会发生相反的情况,页面“b”再次被隐藏,无法查看,页面“a”使用相同的方法重新显示 我遇到的问题是,当再次单击指向当前显示页面的链接时,当前页面将变为空白;如果页面“A”已经加载,我

我有两个导航按钮“a”和“b”,其中“a”链接到“a”页,“b”链接到“b”页。加载页面时,页面“A”默认可见,页面“B”默认隐藏。单击链接“b”时,页面“A”淡入不透明度0,并通过jQuery“切换”方法降低高度,而页面“b”淡入不透明度1,并通过jQuery“切换”方法将高度增加到全尺寸。当再次单击链接“a”时,会发生相反的情况,页面“b”再次被隐藏,无法查看,页面“a”使用相同的方法重新显示

我遇到的问题是,当再次单击指向当前显示页面的链接时,当前页面将变为空白;如果页面“A”已经加载,我点击链接“A”,整个页面将变为空白,这是我不想要的。我尝试了以下几点:

var i = "a";

function a() {
  if (i != "a") {
    var i = "a";    
    jQuery(animation to hide page 'A');
    jQuery(animation to make visible page 'B');
  }
}

function b() {
  if (i != "b") {
    var i = "b";
    jQuery(animation to hide page 'B');
    jQuery(animation to make visible page 'B');
  }
}
我发现,我在函数内部设置的变量“I”的值仅在函数内部有效,而在函数外部,变量的值保持为“a”,因此链接“a”永远不可单击,而链接“b”始终可单击,并且会导致空白页

如何编写正确的javascript来执行我希望它执行的操作?

在两个函数中删除var关键字,它将修改全局I变量

您的代码实际上非常容易引起误解,因为您将i分配给函数,您可能只想将其更改为使用字符串,如下所示:

var i = "a";

function a() {
  if (i != "a") {
    i = "a";    
    jQuery(animation to hide page 'A');
    jQuery(animation to make visible page 'B');
  }
}

function b() {
  if (i != "b") {
    i = "b";
    jQuery(animation to hide page 'B');
    jQuery(animation to make visible page 'B');
  }
}
var i = a;

function a() {
  if (i != a) {
    i = a;    
    jQuery(animation to hide page 'A');
    jQuery(animation to make visible page 'B');
  }
}

function b() {
  if (i != b) {
    i = b;
    jQuery(animation to hide page 'B');
    jQuery(animation to make visible page 'B');
  }
}
在这两个函数中删除var关键字,它将修改全局i变量

您的代码实际上非常容易引起误解,因为您将i分配给函数,您可能只想将其更改为使用字符串,如下所示:

var i = "a";

function a() {
  if (i != "a") {
    i = "a";    
    jQuery(animation to hide page 'A');
    jQuery(animation to make visible page 'B');
  }
}

function b() {
  if (i != "b") {
    i = "b";
    jQuery(animation to hide page 'B');
    jQuery(animation to make visible page 'B');
  }
}
var i = a;

function a() {
  if (i != a) {
    i = a;    
    jQuery(animation to hide page 'A');
    jQuery(animation to make visible page 'B');
  }
}

function b() {
  if (i != b) {
    i = b;
    jQuery(animation to hide page 'B');
    jQuery(animation to make visible page 'B');
  }
}

您在函数中再次定义了一个新变量i,因为您在i之前使用了var。 将其更改为如下所示:


您在函数中再次定义了一个新变量i,因为您在i之前使用了var。 将其更改为如下所示: