Tengo una clase sencilla.
El problema que tengo es que mi función onClick nunca se llama al hacer clic en el elemento div.
class card { constructor(parent, element) { this.parent = parent; this.element = element; this.element.on({ 'click': $.proxy(this.onClick, this) }); } onClick() { console.log("onclick"); } } class cards { constructor() { this.element = $(".cards"); this.cards = []; this.element.children(".card").each((obj) => { this.cards.push(new card(this, $(obj))); }); } } var my_a = new cards();each(index, element) pasa dos parámetros a la devolución de llamada. El primero es el índice, el segundo es el elemento. Está envolviendo el índice, no el elemento dom.
class card { constructor(parent, element) { this.parent = parent; this.element = element; this.element.on({ 'click': $.proxy(this.onClick, this) }); } onClick() { console.log("onclick"); } } class cards { constructor() { this.element = $(".cards"); this.cards = []; this.element.children(".card").each((obj, el) => { console.log(el); this.cards.push(new card(this, $(el))); }); } } var my_a = new cards(); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <div class="cards"> one asdf <div class="card"> card 1 asdf </div> <div class="card"> card 2 asdf </div> </div>