您好我是JQuery / Meteor的新手,目前遇到了一个奇怪的问题,并希望有人能帮助我。
我在Meteor中创建了一个点击事件,以便用户点击“删除”按钮。按钮,以从数据库中删除在网站上发布的评论。下面是我为click事件编写的代码。
"click .js-del-comment": function(event) {
Websites.update(this.databaseID, {$pull: {comments: {
contentID: this.contentID
}}});
}
上面的代码完全正常,但只要用户点击"删除"按钮,评论很快消失。因此,为了让用户有一个更愉快的过程视图,我将上面的代码与JQuery的hide()
函数结合起来,这样当项目/评论被删除时,它会褪色慢慢地。下面的代码是我修改后的代码与JQuery的结合。
"click .js-del-comment": function(event){
$("#" + this.contentID).hide('slow', function(){
Websites.update(this.databaseID, {$pull: {comments: {
contentID: this.contentID
}}});
});
}
将我的事件代码与JQuery结合后,这些评论/项目通过慢慢淡出从我的网站中删除,但是,每当我刷新浏览器时,那些旧的已删除的评论都会再次出现。如果我没有使用JQuery hide()
函数,原始代码工作正常,即使我刷新浏览器后,这些已删除的项目/注释也从未返回。
为什么会出现这个奇怪的问题?
答案 0 :(得分:0)
this
的上下文发生了变化。
尝试绑定回调的上下文:
$("#" + this.contentID).hide('slow', function(){
Websites.update(this.databaseID, {
$pull: {
comments: {
contentID: this.contentID
}}});
}.bind(this));