0

I am trying to call makeItem(breadstick) from my HTML, but I am getting an error: Uncaught ReferenceError: breadstick is not defined. I believe this is because, when you call a function, the parameters have to be either numbers or variables in your script.

Originally, breadstickvar was just breadstick, but then I got an Uncaught TypeError at var elem = document.getElementById(item + "Bar");. I am trying to make a reference to my HTML element, breadstickBar.

What I am hoping would happen was makeItem(breadstick) would be called, all of the item + "var" would be equal to "breadstickBar", and thus work, and document.getElementById(item + "Bar") would equal breadstickBar and reference my HTML element. I think this isn't working because breadstick is not a variable any more.

Is there any way to either:

1) Call the function so that I don't get an error.
2) Rearrange my code so that
var elem = document.getElementById(item + "Bar"); works.

var breadstickvar = {
    number: 0,
    price: 1,
    time: 1000,
    beingMade: 0
};

function makeItem(item) {
    if ( (item + "var").beingMade == 0) {
        (item + "var").beingMade = 1;
        var elem = document.getElementById(item + "Bar");
        var width = 0;
        var id = setInterval(frame, 10);
        function frame() {
            if (width >= 200) {
                clearInterval(id);
            } else {
                width += 2;
                elem.style.width = width + 'px';
            }
        }
    }
}

It was like this before:

var breadstick = {
    number: 0,
    price: 1,
    time: 1000,
    beingMade: 0
};

function makeItem(item) {
    if ( item.beingMade == 0) {
        item.beingMade = 1;
        var elem = document.getElementById(item + "Bar");
        var width = 0;
        var id = setInterval(frame, 10);
        function frame() {
            if (width >= 200) {
                clearInterval(id);
            } else {
                width += 2;
                elem.style.width = width + 'px';
            }
        }
    }
}
William Jones
  • 809
  • 2
  • 11
  • 29

0 Answers0