2017-01-21 1 views
0

抽象的なタイトルは申し訳ありませんが、私がここで扱っていることをよりよく説明する方法はわかりません。ですから、基本的に、別のメソッドでイベントリスナーを追加するときに使用されるメソッドを作成したいと思います。 TypeError例外:プロパティを読み取ることができませんif (event.target.getAttribute("class") === "cell")event.targetを使用してメソッドを呼び出すときに未定義になる

にrefferingされ、未定義の「のgetAttribute」は、私が間違って何をやっている私はそれを実行すると、私は次のエラーを取得する

playerShips(obj) { 
    let shipCounter = this.createCounter(obj.container); 
    obj.element.addEventListener("click", this.addShipsEvent({ 
    counter: obj.counter, 
    shipCounter: shipCounter 
    })); 
} 

addShipsEvent(event, obj) { 
    if (event.target.getAttribute("class") === "cell") { 
     event.target.classList.add("active"); 
     obj.counter += 1; 
    } else { 
     event.target.classList.remove("active"); 
     obj.counter -= 1; 
    }  
} 

+0

addShipEvent内でconsole.log(event.target)を試して、イベントが正当なターゲットであることを確認してください。 – bresson

+0

私は私がconsole.log(event.target) –

答えて

0

"addEventListener"はイベントリスナーを2番目の引数として想定していますが、 "addShipsEvent"を返すことなしに実行しているだけです。 解決方法は、単にクロージャを返すことです。

私はこれがあなたを助けてくれることを願っています。

+1

私はバインディングは同じことをする必要がありますと思うときは不明です。例えばaddEventListener( "click"、this.addShipsEvent.bind(this、{...}) –

関連する問題