jquery运行多次

时间:2018-05-28 11:08:28

标签: javascript jquery ruby-on-rails hover

对不起我的英文:/ 我有一个Jquery代码执行的次数与具有类newness的div一样多。因为newness在一个'for'中

当我在div上移动鼠标时,我在下面创建代码JQuery:在计数器上删除1并在此div(newness)上放置一个hoverdiv,然后我发布一个db数据,但对于我拥有的每个项目,有一个div newness,所以它重新制作动作很多次,有文章我想jquery只做一次代码

我认为div必须是独特的,如:

<div class="newness-<%=activity.id %>

但我不能在JQuery中这样做:

$('.newness-<%=activity.id %>')

如果我的数据库中有两项活动,则下面的代码会添加两次Post方法和两次--num(计数器)。

以下是代码:

<div class="newness" data-id='<%=activity.id %>'>NEW</div>

jQuery,我试过悬停,它也一样。

$('.newness').one('mouseenter', function() {
  $(this).addClass('hover');
  var num = parseInt($.trim($('.body__activity_counter').html()));
  $('.body__activity_counter').html(--num);
  if (num == 0) {
    $('.body__activity_counter').addClass('hover');
  }
  newnessId = $(this).data('id');
  $.ajax({
    url: '/user_activities.json',
    method: 'POST',
    data: {
      user_activity: {
        activity_id: newnessId
      }
    }
  })
})

如果我的鼠标悬停在这个div上,我有两个活动,这里是日志:

  UserActivity Create (2.3ms)  INSERT INTO "user_activities" ("activity_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["activity_id", 4], ["user_id", 2], ["created_at", "2018-05-28 10:59:26.615344"], ["updated_at", "2018-05-28 10:59:26.615344"]]

↳ app/controllers/user_activities_controller.rb:11
   (1.0ms)  COMMIT

↳ app/controllers/user_activities_controller.rb:11
  UserActivity Create (8.6ms)  INSERT INTO "user_activities" ("activity_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["activity_id", 4], ["user_id", 2], ["created_at", "2018-05-28 10:59:26.617042"], ["updated_at", "2018-05-28 10:59:26.617042"]]

↳ app/controllers/user_activities_controller.rb:11

1 个答案:

答案 0 :(得分:1)

我通过更改脚本的位置解决了我的问题,因为这个组件多次执行我的数据库中有文章

感谢@AlbertoCh