javascript - ajax jquery 和点击事件

标签 javascript jquery promise


我有几个具有相同类别“取消关注”的按钮。
当用户单击其中一个按钮时,它会触发 ajax 请求并将类更改为“follow”,并向该类添加一个单击监听器。
当用户单击“关注”按钮时,它会触发一个新的 ajax 请求并将类更改为“取消关注”。
现在的结果是,当用户单击“取消关注”链接时,一切顺利,但是当用户单击“关注”按钮时,它会触发 2 个 ajax 请求,1 个“取消关注”和 1 个“关注”。< br/>

已解决

新代码:
promise 模拟 ajax 请求

$('.btn').click(function(event) {
  var $self = $(this);
  var screenName = $self.parent().prev().children().children('p').text().substring(1);

  if ($self.hasClass('unfollow')) {
    var unfollowReq = new Promise(function(resolve, reject) {
      $self.removeClass('unfollow').addClass('follow');
      $self.text('Follow');
      console.log('Unfollow');
      resolve();
    });
  } else if ($self.hasClass('follow')){
    var unfollowReq = new Promise(function(resolve, reject) {
      $self.removeClass('follow').addClass('unfollow');
      $self.text('Unfollow');
      console.log('Follow');
      resolve();
    });
  }
});

已更新JSFiddle

问候,
利亚德。

最佳答案

您必须在关注点击后删除关注事件监听器。

为此使用 unbind()。

https://api.jquery.com/unbind/

关于javascript - ajax jquery 和点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331669/

相关文章:

javascript - Promise、Promise/A 和 Promise/A+ 之间的区别

javascript - Mongoose 的 promise 和 bluebird

javascript - 使用 Material UI 菜单时在控制台中收到警告。建议我解决方案。我在文本对象中使用 HTML

javascript - 使用 .trigger 将事件传递给子级

javascript - 使用 jQuery 删除选择列表的选项返回此错误 "unable to get property length of undefined or null reference"

javascript - 平滑滚动到 data-href

javascript - 使用 Promise.all

javascript - jQuery 的 remove() 绕过 FX 队列?我如何只在链的末端使用它?

javascript - 在 JQuery 中定义全局变量

javascript - 如何在金额字段中添加小数。 ( 0.00 )