回调功能无法正常点击

时间:2018-11-26 09:01:03

标签: javascript jquery

我想在单击日期选择器时调用函数,以便可以根据给定的输入日期动态更改图形。所以下面是我的日期选择器代码的一部分

<div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%">
<i class="fa fa-calendar"></i>&nbsp;
<span></span> <i class="fa fa-caret-down"></i>
</div>

下面是我的脚本

<script>

$(function() {
var start = moment().subtract(6, 'days');
var end = moment();

$('#reportrange').daterangepicker.ranges.on({click:function () 
{
    addtoday()

}
});
function cb(start, end) {
    $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));

}

$('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    minDate: '-1Y',
    maxDate:new Date(),
    ranges: {
       'Today': [moment(), moment(),],
       'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days'),addyesterday()],
       'Last 7 Days': [moment().subtract(6, 'days'), moment()],
       'Last 30 Days': [moment().subtract(29, 'days'), moment()],
       'This Month': [moment().startOf('month'), moment().endOf('month')],
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
    },
}, cb);
cb(start, end);

});

当我单击“今天”范围时,我必须今天更新我的图表,即功能addtoday()

下面是我必须调用的函数

function addData1() {
    let abc = [{% for item in values1 %}
        {{item}},
    {% endfor %}]
    mixedChart.data.datasets[1].data = abc;
    mixedChart.update();
}

2 个答案:

答案 0 :(得分:0)

尝试一下。

$('#date-range0')
  .dateRangePicker().bind('datepicker-change',function(event,obj){
    /* This event will be triggered when second date is selected */
        console.log(obj);
        });

---更新----

$('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    minDate: '-1Y',
    maxDate:new Date(),
    ranges: {
       'Today': [moment(), moment(),],
       'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days'),addyesterday()],
       'Last 7 Days': [moment().subtract(6, 'days'), moment()],
       'Last 30 Days': [moment().subtract(29, 'days'), moment()],
       'This Month': [moment().startOf('month'), moment().endOf('month')],
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
    },
}, cb).bind('datepicker-change',function(event,obj){
    addData1()
        })

答案 1 :(得分:0)

我得到了部分答复@Sooriya Dasanayake。我申请时只能执行一个功能, 但是当我不同地应用日期时,我想更改功能。非常感谢@Sooriya Dasanayake的工作,但我正处于获得正确结果的边缘

<script>

$(function() {
var start = moment().subtract(6, 'days');
var end = moment();


function cb(start, end) {
    $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));

}

$('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    minDate: moment().subtract(365, 'days'),
    maxDate:moment(),
    ranges: {
       'Today': [moment(), moment(),],
       'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days'),],
       'Last 7 Days': [moment().subtract(6, 'days'), moment()],
       'Last 30 Days': [moment().subtract(29, 'days'), moment()],
       'This Month': [moment().startOf('month'), moment().endOf('month')],
       'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
    },
},

    cb);
cb(start, end);

});

 $('#reportrange').on('apply.daterangepicker', function() {
if(Today='Today')
    addtoday();
if(Yesterday='Yesterday')
   addyesterday();
if(lastweek='Last 7 Days')
   lastweek();
if(presentmonth='This Month')
   presentmonth();
if(any_date='Custom Range')
   any_date();
 });


 </script>
相关问题