记住在单击时传递给JavaScript函数的最后一个值

记住在单击时传递给JavaScript函数的最后一个值,javascript,jquery,Javascript,Jquery,下面是我的代码片段: <div onclick = "myClick('value 1')"> button 1 </div> <div onclick = "myClick('value 2')"> button 2 </div> 基本上,每次单击不同的div时,都会向JavaScript函数传递不同的值 我的问题是如何跟踪在上一次单击中传递的值 例如,我单击按钮1,值1将传递给函数。稍后,我单击按钮2,我想知道之前是否单击过

下面是我的代码片段:

<div onclick = "myClick('value 1')">
    button 1
</div>
 <div onclick = "myClick('value 2')">
    button 2
</div>
基本上,每次单击不同的div时,都会向JavaScript函数传递不同的值

我的问题是如何跟踪在上一次单击中传递的值


例如,我单击按钮1,值1将传递给函数。稍后,我单击按钮2,我想知道之前是否单击过按钮1并获得值1。

只需将其添加到脚本中的变量:

var lastClicked;
var myClick = function(value) {

    lastClicked = value;

};

只需将其添加到脚本中的变量:

var lastClicked;
var myClick = function(value) {

    lastClicked = value;

};

我想你需要这样的东西

var clickedButtons = [];
function myClick(value){
...
clickedButtons.push(value);
...
}

我想你需要这样的东西

var clickedButtons = [];
function myClick(value){
...
clickedButtons.push(value);
...
}

您可以定义某种变量,如var lastUsed; 在函数中添加其他行:

var lastUsed = null;
function myClick(value){
  prevClicked = lastUsed; //get the last saved value
  ...
  lastUsed = value; //update the saved value to the new value
  ...
}

你可以定义某种变量,比如var lastUsed; 在函数中添加其他行:

var lastUsed = null;
function myClick(value){
  prevClicked = lastUsed; //get the last saved value
  ...
  lastUsed = value; //update the saved value to the new value
  ...
}

现在你需要一个变量。变量就像可以存储值的小盒子。在本例中,我们可以存储上次传递给函数myClick的值

在Javascript中,可以定义如下所示的变量:

var lastClickedValue;
您可以在该变量中输入一个值。假设你想把你的名字放在那里。您可以这样做:

lastClickedValue = 'sams5817';
现在是棘手的一点。变量具有作用域。你可能想把它当作他们的一生。当变量到达其作用域的末尾时,您将无法再对其进行读取或写入。就好像从来没有发生过一样。函数定义一个作用域。因此,在函数中定义的任何变量都将在函数末尾消失。例如:

function myClick(value)
{
   var lastClickedValue;

   alert('lastClickedValue is = ' + value);

   lastClickedValue = value;
}
看起来差不多对了,不是吗?我们声明了一个变量,显示它的最后一个值,并用新值更新它

但是,由于lastClickedValue是在函数myClick中声明的,一旦到达该函数的末尾,它就消失了。因此,下次我们调用myClick时,将再次创建lastClickedValue。它将是空的。我们称之为未初始化变量

那有什么问题?即使在myClick结束后,我们也会尝试记住一个值。但是我们在myClick中声明了lastClickedValue,因此它在myClick结束时停止存在

解决方案是确保在myClick完成后lastClickedValue继续存在

因此,我们必须在不同的范围内删除lastClickedValue。幸运的是,有一个更大的范围称为全局范围。它从页面加载的那一刻起就存在,直到用户转到另一个页面为止。让我们这样做:

var lastClickedValue;

function myClick(value)
{
   alert('lastClickedValue is = ' + value);

   lastClickedValue = value;
}
差别很小。我们将变量lastClickedValue的声明移到函数myClick之外。因为它在外部,所以在myClick完成后它将保持存在。这意味着每次调用myClick时,lastClickedValue仍然存在

这将让您知道传递给myClick的最后一个值是什么


最后,我建议您寻找一些Javascript教程。我希望我知道一些好的建议,但我相信你可以在网上找到一些。如果你在理解你所做的事情之前就试图编写程序,你会发现你所做的工作比你所能做的要少。祝你好运

您需要一个变量。变量就像可以存储值的小盒子。在本例中,我们可以存储上次传递给函数myClick的值

在Javascript中,可以定义如下所示的变量:

var lastClickedValue;
您可以在该变量中输入一个值。假设你想把你的名字放在那里。您可以这样做:

lastClickedValue = 'sams5817';
现在是棘手的一点。变量具有作用域。你可能想把它当作他们的一生。当变量到达其作用域的末尾时,您将无法再对其进行读取或写入。就好像从来没有发生过一样。函数定义一个作用域。因此,在函数中定义的任何变量都将在函数末尾消失。例如:

function myClick(value)
{
   var lastClickedValue;

   alert('lastClickedValue is = ' + value);

   lastClickedValue = value;
}
看起来差不多对了,不是吗?我们声明了一个变量,显示它的最后一个值,并用新值更新它

但是,由于lastClickedValue是在函数myClick中声明的,一旦到达该函数的末尾,它就消失了。因此,下次我们调用myClick时,将再次创建lastClickedValue。它将是空的。我们称之为未初始化变量

那有什么问题?即使在myClick结束后,我们也会尝试记住一个值。但是我们在myClick中声明了lastClickedValue,因此它在myClick结束时停止存在

解决方案是确保在myClick完成后lastClickedValue继续存在

因此,我们必须在不同的范围内删除lastClickedValue。幸运的是,有一个更大的范围称为全局范围。它从页面加载的那一刻起就存在,直到用户转到另一个页面为止。让我们这样做:

var lastClickedValue;

function myClick(value)
{
   alert('lastClickedValue is = ' + value);

   lastClickedValue = value;
}
差别很小。我们将变量lastClickedValue的声明移到函数myC之外 舔因为它在外部,所以在myClick完成后它将保持存在。这意味着每次调用myClick时,lastClickedValue仍然存在

这将让您知道传递给myClick的最后一个值是什么


最后,我建议您寻找一些Javascript教程。我希望我知道一些好的建议,但我相信你可以在网上找到一些。如果你在理解你所做的事情之前就试图编写程序,你会发现你所做的工作比你所能做的要少。祝你好运

我很惊讶没有其他人提到这一点,但由于函数是JavaScript中的第一类对象,您还可以为函数分配属性和方法。因此,为了记住函数调用之间的值,您可以像我一样在这里使用这个函数:

function toggleHelpDialog() {
    if (typeof toggleHelpDialog.status === 'undefined')
        toggleHelpDialog.status = true;
    else
        toggleHelpDialog.status = !toggleHelpDialog.status;

    var layer = this.getLayer();

    if (toggleHelpDialog.status) layer.add(helpDialog);
    else helpDialog.remove();

    layer.draw();
}

在这里,我向toggleHelpDialog函数添加了一个名为“status”的属性。此值与函数本身关联,并且与toggleHelpDialog函数具有相同的作用域。存储在status属性中的值将在多次调用函数时保持不变。但是要小心,因为它可以被其他代码访问并在不经意间被更改。

我很惊讶没有其他人提到这一点,但由于函数是JavaScript中的第一类对象,所以您还可以为函数分配属性和方法。因此,为了记住函数调用之间的值,您可以像我一样在这里使用这个函数:

function toggleHelpDialog() {
    if (typeof toggleHelpDialog.status === 'undefined')
        toggleHelpDialog.status = true;
    else
        toggleHelpDialog.status = !toggleHelpDialog.status;

    var layer = this.getLayer();

    if (toggleHelpDialog.status) layer.add(helpDialog);
    else helpDialog.remove();

    layer.draw();
}

在这里,我向toggleHelpDialog函数添加了一个名为“status”的属性。此值与函数本身关联,并且与toggleHelpDialog函数具有相同的作用域。存储在status属性中的值将在多次调用函数时保持不变。但是要小心,因为它可能被其他代码访问,并且会被无意中更改。

我们可以利用javascript静态变量 函数作为对象的性质的一个有趣方面是,您可以创建静态 变量。静态变量是函数局部作用域中的变量,其值在 函数调用。在JavaScript中创建静态变量是通过添加实例实现的 属性设置为所讨论的函数。例如,考虑定义函数的代码 将两个数字相加并保持连续和的doSum:

function doSum(x,y){
  if (typeof doSum.static==='undefined'){
     doSum.static = x+y;

 }else{
    doSum.static += x+y;
}
 if (doSum.static >= 100){doSum.static = 0;doSum.static += x+y;}

  return doSum.static;
}
alert(doSum(5,15))
alert(doSum(10,10))
alert(doSum(10,30))
alert(doSum(20,30))

我们可以利用javascript静态变量 函数作为对象的性质的一个有趣方面是,您可以创建静态 变量。静态变量是函数局部作用域中的变量,其值在 函数调用。在JavaScript中创建静态变量是通过添加实例实现的 属性设置为所讨论的函数。例如,考虑定义函数的代码 将两个数字相加并保持连续和的doSum:

function doSum(x,y){
  if (typeof doSum.static==='undefined'){
     doSum.static = x+y;

 }else{
    doSum.static += x+y;
}
 if (doSum.static >= 100){doSum.static = 0;doSum.static += x+y;}

  return doSum.static;
}
alert(doSum(5,15))
alert(doSum(10,10))
alert(doSum(10,30))
alert(doSum(20,30))

你想在页面上,在会议期间,在几个会议期间,跟踪它吗…你想在页面上,在会议期间,在几个会议期间跟踪它吗…勾选详细的解释,见鬼,我相信你花了足够长的时间来写它。我肯定不会遇到麻烦,但是嘿,既然你这么做了,我就赞扬你!为详细的解释打勾,见鬼,我相信你花了足够长的时间写出来。我肯定不会遇到麻烦,但是嘿,既然你这么做了,我就赞扬你!