JQuery - Onclick - 提醒经过的时间

时间:2015-01-22 19:36:11

标签: javascript jquery timer global-variables

当用户按下转义键时,我想显示一条警告消息,声明自开始输入以来经过的时间。

$(document).ready(function() {
  $(document).keyup(function(e) {
    if (e.keyCode == 27) {
      var current_date = new Date();
      var time_end = current_date.getTime();
      alert(time_end - time_start);
    }});
  $(":input").click(function() {
     var date = new Date();
     var time_start = date.getTime();
  });

问题是因为time_start$(":input").click函数中定义的局部变量,我无法使用$(document).keyup方法访问它。

不幸的是,我也不能通过在函数外声明它来使它成为全局变量,因为我必须在用户在输入框内单击时启动计时器。

根据W3Schools,time_start应该是一个全局变量,因为我为其分配了值date.getTime()

非常感谢任何反馈。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以保存他们开始在输入的父节点上键入的时间点 例如,在<body />元素上(可能有更好的地方)

&#13;
&#13;
$(function() {
  $(document).on("keyup", function(ev) {
    if (ev.which != 27) {
      return;
    }

    var startTime = $("body").data("startTime");
    if (typeof startTime != "object") {
      return;
    }

    alert(new Date().getTime() - startTime.getTime());
  });

  $(":input").on("click", function() {
    $("body").data("startTime", new Date());
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
&#13;
&#13;
&#13;