如何在Javascript中使用委托

时间:2017-05-23 16:00:56

标签: javascript delegates

我有像这样的构造函数

function TodoController() {
  this.todoList = [];
  this.id = 0;
  this.ENTER_KEY = 13;
};

TodoController.prototype = {

  todoView: function (todo) {
    var controller =  todoController.todoList;
    console.log('controller', controller);

    var item = document.createElement('li');
    item.setAttribute('class', 'todoItem');

    var inpCheckbox = document.createElement('input');
    this.setAttributes(inpCheckbox, { 'type': 'checkbox', 'class' : 'itemList'} );

    var lbContent = document.createElement('label');
    lbContent.innerHTML = todo.getContent();

    var btnRemove = document.createElement('button');
    console.log('id', this.id)
    this.setAttributes(btnRemove, { 'class': 'remove', 'id' : this.id} );
    // btnRemove.setAttribute('id', this.id);

    //item append each element
    item.appendChild(inpCheckbox);
    item.appendChild(lbContent);
    item.appendChild(btnRemove);

    console.log('item', item);

    //ul append each item
    document.querySelector('#todoListView').appendChild(item);
  },

现在我想创建一个删除项目的事件,就像那样

var deleteItem = document.getElementsByClassName('remove')
    for(var i = 0; i < deleteItem.length; i++) {
      deleteItem[i].addEventListener("click", function() {
        console.log('done')
      });
    }

我的问题是我可以调用类remove,因为它要创建为todoView函数。在jQuery中我看到它使用委托方法,但我不知道如何使用javascript。请帮帮我

0 个答案:

没有答案