Как мне перейти к определенному свойству в моей библиотеке Jquery?

#javascript #jquery #ajax

#javascript #jquery #ajax

Вопрос:

Ребята, у меня есть следующий код, написанный в пользовательской библиотеке Jquery для построения диаграммы в моей ASP.net Приложение MVC. Теперь я хочу изменить определенное значение в нем с помощью вызова ajax. Пожалуйста, взгляните на мой код :

Из пользовательской библиотеки Jquery :

  $('#performance-cart').highcharts({
        chart: {
            type: 'area', backgroundColor: '#f5f7f7', style: { fontFamily: 'Roboto, Sans-serif', color: '#aeafb1' },
            animation: {
                duration: 1500,
                easing: 'easeOutBounce'
            }
        },
        xAxis: {
            type: 'datetime',
            labels: { style: { color: '#aeafb1' } }
        },
        yAxis: {
            min: 0, max: 50, tickInterval: 10, gridLineColor: '#ebeded', gridLineWidth: 1,
            title: { text: '' }, lineWidth: 0, labels: { align: 'right', style: { color: '#aeafb1' } }
        },
        title: { text: '' },
        tooltip: {
            useHTML: true, headerFormat: '<h3 style="color:#ffffff;font-weight:300;padding: 3px 12px;">{point.y:,.1f}</br>',
            backgroundColor: '#515757', pointFormat: 'Issues</h3>'//$('#performanceColumnChart').data('tooltip')
        },
        legend: {
            itemStyle: { color: '#838589' }, symbolWidth: 12, symbolHeight: 5, itemWidth: 80, symbolRadius: 0,
            itemMarginBottom: 10, backgroundColor: '#f5f7f7', verticalAlign: 'top', borderWidth: 0, x: -498, y: 10
        },
        plotOptions: {
            area: {
                fillOpacity: 0.2, cursor: 'pointer', marker: {
                    symbol: 'circle', fillColor: '#FFFFFF', lineWidth: 2, lineColor: null,
                    allowPointSelect: true
                }
            },
            line: {
                fillOpacity: 0.2, cursor: 'pointer', marker: {
                    symbol: 'circle', fillColor: '#FFFFFF', lineWidth: 2, lineColor: null,
                    allowPointSelect: true
                }
            },
            column: {
                fillOpacity: 0.2, cursor: 'pointer', marker: {
                    symbol: 'circle', fillColor: '#FFFFFF', lineWidth: 2, lineColor: null,
                    allowPointSelect: true
                }
            },
            series: {
                pointStart: myIssueResolvedStartDate,
                pointInterval: 24 * 3600 * 1000 // one day
            }
        },
        series: [{
            name: 'Issues', color: '#ff3806',
            data: myIssueData,
            marker: { states: { hover: { fillColor: '#ff3806', lineColor: '#ffffff', lineWidth: 2 } } }
        }, {
            name: 'Resolved', color: '#1da9dd',
            data: myResolvedData,
            marker: { states: { hover: { fillColor: '#1da9dd', lineColor: '#ffffff', lineWidth: 2 } } }
        }]
    });
  

Мой вызов Ajax :

 $.ajax(
    {
        type: "GET",
        url: WebApiURL   "/api/home/GetQueryIssueResolvedData?deptCode="   departCode,
        dataType: "json",
        crossDomain: true,
        async: true,
        cache: false,
        success: function (myData) {
            var chart = $('#performance-cart').highcharts();
            var ResolvedStartDate = myData.data.IssueResolvedStartDate;
            var issueData = myData.data.IssueData;
            var resolveData = myData.data.ResolvedData;

            //chart.plotOptions.series.setpointStart(ResolvedStartDate, true);
            chart.series[1].setData(issueData, true);
            chart.series[0].setData(resolveData, true);
        },
        error: function (x, e) {
            alert('There seems to be some problem while fetching records!');
        }

    }
);
  

Теперь я хочу заменить значение даты в pointStart элементе библиотеки jquery с помощью вызова ajax, но я не знаю, как добраться до этого свойства.

Я пытался использовать chart.plotOptions.series.setpointStart(ResolvedStartDate, true); , но он говорит, что plotOptions не определено. Как я pointStart могу получить значение даты ResolvedStartDate ?

Ответ №1:

Вы могли бы попробовать обновить серию новыми опциями для отдельных серий — см. http://api.highcharts.com/highcharts#Series.update

Комментарии:

1. Спасибо, но я все еще не понимаю, как обновить мой startPoint , я просматриваю весь этот форум.

2. Попробуйте включить это в свой код (при необходимости добавьте 2-ю серию) chart.series[0].update({ pointStart: ResolvedStartDate }); Вы должны определить ResolvedStartDate как число, которое принимает pointStart (если еще не number). Вы можете использовать Date.UTC() для преобразования,

Ответ №2:

Мне просто нужен был этот простой однострочный код

 chart.options.plotOptions.series.pointStart = newDate
  

где newDate — это переменная для новой даты в формате UTC.