2015-07-16 3 views
1

У меня есть сценарий высокой четкости, создающий граф из 2 внешних CSV-файлов. (эта часть все хорошо работает). Я пытаюсь создать список, который будет загружать другой график, используя отдельный набор файлов. Конечным результатом будет список наборов файлов слева, когда вы нажимаете каждый из них, он отображается. Несмотря на то, что файл file1, file2 как глобальные переменные, не может быть возвращен в функцию main(). То есть, новый график не загружается, оригинал остается. Я попытался вызвать main() из функции select(), но он говорит, что он не определен. Я не уверен, что делать.передать глобальную переменную в функцию jquery

<head><script> 
var file1 = 'file1.csv' 
var file2 = 'file2.csv' 
function choose(choice,choice2,){file1 = choice;file2 = choice2} 

$(function main() { 
    $.get(file1, function(csv) { 
    chart1 = new Highcharts.Chart({ 
....etc 
</script></head> 

<body><div> 
<li><a id="1" onClick="choose('file1.csv','file2.csv')">FileSet1</a></li> 
<li><a id="2" onClick="choose('file3.csv','file4.csv')">FileSet2</a></li> 
+0

оберните ajax в функции ... вызовите эту функцию на pageload и внутри 'select'. Лично я бы избавился от 'onclick' и обработал все с помощью jQuery и, следовательно, избавился от globals и поместил все в' main' замыкание – charlietfl

+0

'select' устанавливает переменные, но не перерисовывает диаграмму. – Barmar

+0

Большое спасибо charlietfl, удалось заставить его работать. Любые советы по замене onclick на jquery? Я пытаюсь что-то вроде http://jsfiddle.net/kzVSt/, но не уверен, что я делаю. –

ответ

0

Вы передаете одну строку в обработчиках событий. Что вы ожидаете от этого?

var str = 'file1.csv,file2.csv'; 
alert(str); 

Вы должны добавить кавычки

onClick="choose('file1.csv', 'file2.csv')" 

Теперь код с оригиналом на Highcharts не собирается волшебно работать, так как вы измените значение. Вам нужно будет вызвать функцию и снова запустить код.

+0

Apologies epascarello , Я неправильно переписал код при задании вопроса, у меня есть котировки правильно в моем коде. –

+0

Ну, вторая часть все еще действительна, главное не перезапускается, когда переменные обновляются. Вам нужно снова вызвать функцию, чтобы получить данные. – epascarello

Смежные вопросы