Я предполагаю, так как он упоминает столбцы, что он основан на разнице в пробелах открытых и закрытых тегов. Как я могу это исправить, хотя? Кажется, что чем меньше я решаю, тем больше всплывающих окон. Я пытался переделать свой код с самого начала, и он работал, однако в моей функции change () просто отсутствовало предупреждение (... Popup), и у меня не было переменной tickbag. Я просто изумлен, что все может быть хорошо, а потом просто разбиться с минимальными добавлениями кода, которые «не должны» (согласно тому, что я знаю) иметь какое-либо влияние на программу в целом.
Вот мой код:
// Travel Calculator JavaScript
// don't forget to validate at https://jslint.com
/*jslint devel: true, browser: true */
// self-executing "global" anonymous function
// it's here to keep variable and function scope
// contained within our script
(function () {
// use strict enforces more rules
// rules make us better programmers
"use strict";
// === === === === === === === === === === === === ===
// === === === === global variables === === === ===
// === === === === begin here === === === ===
// === === === === === === === === === === === === ===
var mileage = 100;
var mpg = 20;
var ppg = 2.50;
var payrate = 15;
var travelers = 2;
var ticketprice = 250;
var baggage = 25;
var vehicletotal = 0;
var persontotal = 0;
var airtotal = 0;
var vehicleperson = 0;
var output = 0;
var hotel = 300;
var tickbag = 0;
// this is how ouputting the console log works. will miss up code
// if not here
console.log("-- travel-calculator.js starting --");
console.log("-----------------------------\n\n\n");
// === === === === === === === === === === === === ===
// === === === === global functions === === === ===
// === === === === begin here === === === ===
// === === === === === === === === === === === === ===
function byID(element) {
return document.getElementById(element);
}
function calculate() {
// grab the current column1 column and save it!
mileage = Number(byID("mileage").value);
mpg = Number(byID("mpg").value);
ppg = Number(byID("ppg").value);
travelers = Number(byID("travelers").value);
payrate = Number(byID("payrate").value);
ticketprice = Number(byID("ticketprice").value);
baggage = Number(byID("baggage").value);
hotel = Number(byID("hotel").value);
vehicletotal = (mileage / mpg * ppg);
persontotal = (travelers * (8 * payrate));
tickbag = (ticketprice + baggage);
airtotal = (ticketprice + baggage) * travelers;
vehicleperson = vehicletotal + persontotal + hotel;
output = "Vehicle Costs: $" + (vehicletotal).toFixed(2) + "\n";
output += "Traveler Costs: $" + persontotal.toFixed(2) + "\n";
output += "Air Cost per Person: $" + tickbag.toFixed(2) + "\n";
output += "Total Cost by Car: $" + vehicleperson.toFixed(2) + "\n";
output += "Total Cost by Plane: $" + airtotal.toFixed(2) + "\n";
alert(output);
}
function change() {
var image = byID("testing");
var carPopup = ("It is cheaper to take a car!");
var airPopup = ("It is cheaper to take a plane!");
if (vehicleperson < airtotal) {
image.src = "images/green_mini_cooper.jpg";
alert(carPopup);
} else {
image.src = "images/airplane.jpg";
alert(airPopup);
}
}
console.log("-- updated by click --");
console.log("----------------------\n\n\n");
console.log("-- updated by \"calculate\" --");
console.log("-------------------------\n\n\n");
byID("calculate-button").addEventListener("click", calculate);
byID("calculate-button").addEventListener("click", change);
}());