我正在尝试创建一个流星事件,以更新文档的"类"模板部分时的"类"字段。我需要在该场的3个单独的预设值之间旋转。到目前为止
Template.buttonGrey.events({
"click .toggleGrey": function (e) {
if($(this).hasClass("myButtonGrey")) {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkFast"}});
} else if ($(this).hasClass("myButtonGreyBlinkFast")) {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkSlow"}});
} else {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGrey"}});
}
},
});
也是我的HTML流星模板的副本。
<template name="buttonGrey">
<a href="#" class="toggleGrey {{class}}">{{number}}</a>
</template>
选择触发事件的元素(和不是文档本身)时,您应该使用$(e.target)
代替$(this)
:
Template.buttonGrey.events({
"click .toggleGrey": function (e) {
if($(e.target).hasClass("myButtonGrey")) {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkFast"}});
} else if ($(e.target).hasClass("myButtonGreyBlinkFast")) {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkSlow"}});
} else {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGrey"}});
}
},
});
但给定数据上下文,您可以直接使用this
(在这种情况下为文档),而无需jQuery:
Template.buttonGrey.events({
"click .toggleGrey": function (e) {
if(this.class === "myButtonGrey") {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkFast"}});
} else if (this.class === "myButtonGreyBlinkFast") {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGreyBlinkSlow"}});
} else {
ButtonsGrey.update(this._id, {$set: {class: "myButtonGrey"}});
}
},
});