0

我在backgridjs表中创建了自定义“TagCell”(已实现THIS)。

所以我的单元格看起来像:

var TagCell = Backgrid.TagCell = Cell.extend({
  className: "tag-cell",
  events: {
      'click .tag a': 'removetag',
    },
  initialize: function (options) {
    TagCell.__super__.initialize.apply(this, arguments);
    this.title = options.title || this.title;
    this.target = options.target || this.target;
    var model = this.model;
    var rawData = this.formatter.fromRaw(model.get(this.column.get("name")), model);


  },
  removetag: function(event) {
      var that = this;
      that.model.set({location: ""},{success: alert("removed!"));

  },
  render: function () {
    this.$el.empty();
    var rawValue = this.model.get(this.column.get("name"));
    var formattedValue = this.formatter.fromRaw(rawValue, this.model);
    this.$el.append('<input name="location" class="tagggs" value="'+formattedValue+'" />');
    this.delegateEvents();
    return this;
  },
});

如果我尝试使用事件单击以调用removetag函数来保存具有空位置的“.tag”模型。但是,如果我尝试使用单击事件调用函数来“.tag a”或直接调用“.rmvtag”类,则不会调用函数。我认为因为 jquery 标签输入是这样设计的:

 $('<span>').addClass('tag').append(
     $('<span>').text(value).append('&nbsp;&nbsp;'),
     $('<a>', {
         href  : '#',
         class : 'rmvtag',
         text  : 'x'
     }).click(function () {
         return $('#' + id).removeTag(escape(value));
     })
 ).insertBefore('#' + id + '_addTag');

因此,在附加元素之后直接编写了带有 removetag() 的单击功能。如何在单击到 rmvtag 链接时从主干调用保存模型功能?谢谢你的帮助!

4

0 回答 0