节点js和jQuery / Ajax(喜欢/不同)

时间:2016-08-24 16:43:38

标签: javascript jquery ajax node.js

我正在进行我的练习/播放项目(刚刚开始使用jQ和Ajax),问题是我不能让我的喜欢/不像按钮工作(在我的应用程序中调用标记/取消标记)。

这是我的代码(也有一些节点js的东西,按钮我认为这不是问题,因为它按预期工作(我可以在我的数据库中保存“标记的东西”等)):

src/test/java

所以详细说明,当你第一次点击它时,我的按钮有效,例如按钮“MARK”,当你点击它时它应该做ajax的东西(发布到我的服务器等,这很好(第一次) ))它也应该更改按钮类,以便它可以像“UNMARK”按钮(类似于Facebook喜欢/不像系统),所以如果我意外地标记它,我可以取消标记它。但它只是不起作用,按钮样式更改,在检查器中我可以看到该类已成功更改为“unmark_message”,但新的“unmark”按钮根本不起作用。当我点击它没有任何事情发生时,它不会再次触发ajax动作。

如果更改角色(标记为取消标记按钮),则会发生相同的事情。

1 个答案:

答案 0 :(得分:2)

这里有两个功能。一个功能标记一个按钮,另一个功能标记按钮。

您的代码的问题在于它只将这两个函数中的一个附加到每个按钮,这意味着每个按钮只能标记(如果它最初未标记)或未标记(如果它最初标记)

您希望将两个函数附加到每个按钮,并根据按钮的状态调用相应的处理程序。

$('a.mark_button, a.unmark_button').on('click', function(e) {
  var $target = $(e.target);
  if ($target.hasClass('mark_button')) {
    onMarkedButtonClick($target);
  } else if ($target.hasClass('unmark_button')) {
    onUnmarkedButtonClick($target);
  }
});

在上面的示例中,onMarkedButtonClickonUnmarkedButtonClick函数会调用您最初编写的单击处理程序。

这是一个演示基本标记/取消标记的JSFiddle。

https://jsfiddle.net/reid_horton/hwkfjx6a/