需要帮助以单击事件监听器调用方法

时间:2019-02-09 05:47:36

标签: javascript class methods

几乎试图在类中调用select函数,但出现错误,告诉我未定义的select。

我尝试了this.element,并使用箭头函数对其进行了调用。

class TabLink {
  constructor(element) {
    // Assign this.element to the passed in DOM element
    // this.element;
    this.element = element;
    // console.log(this.element);
    // Get the custom data attribute on the Link
    // this.data;
    this.data = this.element.dataset.tab
    // Using the custom data attribute get the associated Item element
    // this.itemElement;
    this.itemElement = document.querySelector(`.tabs-item[data-tab="${this.data}"]`);
    // Using the Item element, create a new instance of the TabItem class
    // this.tabItem;
    this.tabItem = new TabItem(this.itemElement);
    // Add a click event listener on this instance, calling the select method on click
    this.tabItem.addEventListener('click', select);
  };

  select() {
    // Get all of the elements with the tabs-link class
    const links = document.querySelectorAll('.tabs .tabs-links');

需要选择才能拨打此电话。

1 个答案:

答案 0 :(得分:0)

select是一个类方法,您需要将其称为对象属性。

this.tabItem.addEventListener('click', this.select.bind(this));

如果该方法中未引用this,则可以仅使用this.select而不是对其进行绑定。