【问题标题】:Pass value outside javascript functions在 javascript 函数之外传递值
【发布时间】:2014-05-21 09:18:43
【问题描述】:

我只是想知道是否可以在函数外部传递一个值,以便它返回一个全局变量。

我有一个 onclick 事件函数,点击时会创建一个新日期:

var beginTimer = new Date ( );    

function count ()
{
    var startTimer = new Date ( );
}

我不希望每次单击按钮时都会删除日期并创建新日期。我需要两个不同的变量,这样当用户单击一个按钮时,它会获得一个日期并存储为一个全局变量。当用户再次单击该按钮时,它会获得一个新日期,然后我想比较两者。

【问题讨论】:

  • 您可能需要使用标志
  • Alwasys 避免在 Javascript 中使用全局变量。他们很糟糕

标签: javascript jquery onclick ref


【解决方案1】:

你需要的可能是一个闭包。假设您有一个 id 为“btn”的按钮 使用 jQuery 你可以写成

var func = (
       var beginTimer;
       return function(){
            var startTimer = new Date ( );
            //compare beginTimer and startTimer here
            //maybe reaassign beginTimer to new Value
       }
 )();
 $("#btn").click(func);

【讨论】:

  • 正是我需要的。为帮助干杯!
  • 欢迎您投票并接受我的回答:)
  • 接受了答案,但由于我只是新人(从昨天开始),没有代表投票。再次欢呼。
【解决方案2】:
var beginTimer = new Date();
var curTime = null;

function count()
{
   curTime = new Date();
}

是的,有可能

【讨论】:

    【解决方案3】:

    大概是这样。

    var beginTimer = new Date ();    
    var startTimer = new Date();
     function count ()
     {
     startTimer=new Date();
     }
    

    【讨论】:

      【解决方案4】:

      你可以这样做

      var beginTimer;    
      
      function count ()
      {
        if(beginTimer)
        {
          beginTimer = new Date ( );  
        }
        var startTimer = new Date ( );
      
        //then you can compare the dates 
      }
      

      【讨论】:

        【解决方案5】:

        如果您创建一个没有 var 关键字的新变量,它会在全局级别创建它。 另一种方法是使用窗口对象:

           window["curTime"] = new Date();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-26
          • 2014-06-23
          • 1970-01-01
          • 2012-11-21
          • 2012-02-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多