[Vuejs]-Vue.js scope issue

0πŸ‘

βœ…

I think you should be passing the event into the function otherwise it won’t know what event is (where is event being defined if it’s not being passed in as a parameter?)

activeButton(event) { // added event here
    const item = event.target.parentNode.childNodes;
    for (let i = 0; i <= item.length; i++) {
        if (item[i].classList.contains('active')) {
            item[i].classList.remove('active');
        }
    }

    event.target.classList.toggle('active');
}

0πŸ‘

Without context but I guess your loop iterate an extra time. item[length] would return undefined

activeButton() {
  const item = event.target.parentNode.childNodes;
  for (let i = 0; i < item.length; i++) {
    if (item[i].classList.contains('active')) {
      item[i].classList.remove('active');
    }
  }
  event.target.classList.toggle('active');
}

Leave a comment