我在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(' '),
$('<a>', {
href : '#',
class : 'rmvtag',
text : 'x'
}).click(function () {
return $('#' + id).removeTag(escape(value));
})
).insertBefore('#' + id + '_addTag');
因此,在附加元素之后直接编写了带有 removetag() 的单击功能。如何在单击到 rmvtag 链接时从主干调用保存模型功能?谢谢你的帮助!