2016-07-06 4 views
0

Новичок вопрос:Доступ к переменной, полученной пользователем из отдельного файла в JS

я хотел бы создать приложение, где я получить мнимое число от пользователя и построить его в комплексной плоскости. Поскольку я надеюсь добавить другие вещи позже, я держу код в отдельных файлах, связанных в HTML-файле.

В первом файле, я получаю реальное и сложная часть от пользователя:

$(document).ready(function() { 
$("#button-number").click(function() { 
    var realPart = prompt("Please, enter the real Part of the number:") 
    var imagPart = prompt("Please, enter the imaginary Part of the number:") 
});}) 

, который я использую во втором файле:

$(document).ready(function() { 
var c = document.getElementById("ComplexPlane"); 
var number = c.getContext("2d"); 
number.beginPath(); 
number.arc(500+50*realPart,300-50*imagPart,10,0,2*Math.PI); 
number.stroke(); 
number.fill();}) 

Однако, это не работает. Он работает, если я определяю переменные вручную вне функции. Я не совсем уверен, как работают все операции, поскольку мои переменные не определены при загрузке документа. Я хотел бы знать, как решить эту проблему.

+2

Возможный дубликат [Что такое область переменных в JavaScript?] (Http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) – Turnip

+0

Попробуйте использовать модульная система загрузки. – gcampbell

+0

Возможный дубликат [Javascript Доступ к переменным, определенным во внешних файлах .js] (http://stackoverflow.com/questions/10864732/javascript-accessing-variables-defined-in-external-js-files) –

ответ

0

Работает так, как ожидалось.

Вместо использования глобальной переменной сферы можно использовать LocalStorage

http://www.w3schools.com/html/html5_webstorage.asp

вы можете хранить реальные воображаемые номера деталей в LocalStorage в первом файле. И вы можете получить к ним доступ во втором файле.

+0

Большое спасибо. Я использовал это решение на данный момент, так как это проще. – Ardweaden

0

Я это, что вы пытаетесь сделать?

$("#button-number").click(function() { 
    var realPart = prompt("Please, enter the real Part of the number:") 
    var imagPart = prompt("Please, enter the imaginary Part of the number:") 
    if (realPart != null && imagPart != null) { 
    var c = document.getElementById("ComplexPlane"); 
    var number = c.getContext("2d"); 
    number.beginPath(); 
    number.arc(parseInt(realPart),parseInt(imagPart),10,0,2*Math.PI); 
    number.stroke(); 
    } 
}); 

https://jsfiddle.net/LeroyRon/93jvtrae/ Или часть, что вы делаете ...
realPart и imagPart могут быть установлены в глобальном масштабе или хранения.

+0

Да, но разница в том, что код для рисования находится в отдельном файле. – Ardweaden

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