每次点击更新日期

时间:2014-11-03 09:34:46

标签: javascript jquery date event-handling click

在我的应用中,我想浏览某些日期。在第一次点击我得到我需要的日期,但在第二次点击它保持不变。

var getDate = function() {

  var d = new Date();
  var month = d.getMonth()+1;
  var day = d.getDate();
  var yesterday = d.getDate()-1;
  var tomorrow = d.getDate()+1;

  var output = d.getFullYear() + '/' +
      ((''+month).length<2 ? '0' : '') + month + '/' +
      ((''+day).length<2 ? '0' : '') + day;



  $('#yesterday, #tomorrow').click(function () {
      if (this.id === 'yesterday') {
        var output = d.getFullYear() + '/' +
            ((''+month).length<2 ? '0' : '') + month + '/' +
            ((''+day).length<2 ? '0' : '') + yesterday;
        $("#today_date").text(output);
      }
      else if (this.id === 'tomorrow') {
         var output = d.getFullYear() + '/' +
             ((''+month).length<2 ? '0' : '') + month + '/' +
             ((''+day).length<2 ? '0' : '') + tomorrow;
         $("#today_date").text(output);
      }
  });
  $("#today_date").text(output);

};   

jsfiddle example here http://jsfiddle.net/7LXPq/800/

2 个答案:

答案 0 :(得分:0)

每次点击yesterdaytomorrow,您都需要更新当前的d日期。否则你总是被困在今天的日期。

尽量保留原始代码,你可以像这样重构:

var getDate = function() {

  var d = new Date();

  var formatDate = function () {
    var month = d.getMonth()+1;
    var day = d.getDate();
    var output = d.getFullYear() + '/' +
       ((''+month).length<2 ? '0' : '') + month + '/' +
       ((''+day).length<2 ? '0' : '') + day;

    return output;
  };

  $('#yesterday, #tomorrow').click(function () {
    d = new Date(d);
    if (this.id === 'yesterday') {
      d.setDate(d.getDate() - 1);
    }
    else if (this.id === 'tomorrow') {
      d.setDate(d.getDate() + 1);
    }
    $("#today_date").text(formatDate());
  });
  $("#today_date").text(formatDate());
};

请参阅demo

答案 1 :(得分:0)

您可以使用此代码:

var getDate = function() {

   var d = new Date();

   var output = d.getFullYear() + '/' +
    (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' +
    (d.getDate() < 10 ? '0' : '') + d.getDate();

    $('#yesterday, #tomorrow').click(function () {
        if (this.id === 'yesterday') {
            d.setDate(d.getDate()-1);
            var output = d.getFullYear() + '/' +
            (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' +
            (d.getDate() < 10 ? '0' : '') + d.getDate();
            $("#today_date").text(output);
        }
        else if (this.id === 'tomorrow') {
            d.setDate(d.getDate()+1);
            var output = d.getFullYear() + '/' +
            (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth()+1) + '/' +
            (d.getDate() < 10 ? '0' : '') + d.getDate();
            $("#today_date").text(output);
        }
    });
    $("#today_date").text(output);

};

如果您需要保留当前日期,您可以在使用之前复制d变量