当我组合JQuery';使用Meteor';s事件
嗨,我是JQuery/Meteor的新手,目前遇到了一个奇怪的问题,希望有人能帮助我 我在Meteor中创建了一个点击事件,允许用户点击“删除”按钮,以便从数据库中删除网站上发布的评论。下面是我为click事件编写的代码当我组合JQuery';使用Meteor';s事件,jquery,meteor,Jquery,Meteor,嗨,我是JQuery/Meteor的新手,目前遇到了一个奇怪的问题,希望有人能帮助我 我在Meteor中创建了一个点击事件,允许用户点击“删除”按钮,以便从数据库中删除网站上发布的评论。下面是我为click事件编写的代码 "click .js-del-comment": function(event) { Websites.update(this.databaseID, {$pull: {comments: {
"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组合后,这些评论/项目从我的网站上被慢慢淡出删除,但是,每当我刷新浏览器时,那些被删除的旧评论就会再次出现。如果我没有使用JQueryhide()
函数,那么原始代码可以正常工作,即使在我刷新浏览器后,那些删除的项目/注释也不会返回
为什么会发生这种奇怪的事情 此的上下文已更改 尝试绑定回调的上下文:
$("#" + this.contentID).hide('slow', function(){
Websites.update(this.databaseID, {
$pull: {
comments: {
contentID: this.contentID
}}});
}.bind(this));
或者使用箭头函数。嗨,伊万,非常感谢你的及时回复,但是我在使用bind时遇到了另一个问题。我有一个删除按钮附加到每个评论。现在,在使用bind之后,每当我删除任何注释时,它下面的顺序注释也将被删除,只有在我刷新浏览器之后,顺序注释才会返回。例如,假设我按顺序列出了4条注释。如果我删除注释1,则注释2也将自动删除,只有在我刷新浏览器后,注释2才会重新出现。为什么会发生这种情况?我假设它们有冲突的
contentID
s。没有加价很难说。嗨,伊万,是的,我也这么认为。我将尝试沿着这条路径研究我的代码。再次感谢。