Javascript 在ajax事件后查找元素

Javascript 在ajax事件后查找元素,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我在一个网站上工作,它允许用户喜欢一个项目(比如一个项目)。事件由jQuery和AJAX处理。项目数组包含很多项目,每个项目都有一个“love”按钮。我决定通过在页面底部放置一个表单并远程提交来有效地减少页面上的表单数量 因此,每当用户单击love按钮时,保存项目id的数据属性就会被放入表单并提交表单。简单的东西 但我发现数据响应有点复杂,因为我不知道如何找到要更新的项的元素id。我不能只使用这个或事件.target,因为它在不同的事件中。我还尝试将事件参数带入提交事件,但没有成功 $(".

我在一个网站上工作,它允许用户喜欢一个项目(比如一个项目)。事件由jQuery和AJAX处理。项目数组包含很多项目,每个项目都有一个“love”按钮。我决定通过在页面底部放置一个表单并远程提交来有效地减少页面上的表单数量

因此,每当用户单击love按钮时,保存项目id的数据属性就会被放入表单并提交表单。简单的东西

但我发现数据响应有点复杂,因为我不知道如何找到要更新的项的元素id。我不能只使用
这个
事件.target
,因为它在不同的事件中。我还尝试将
事件
参数带入
提交事件
,但没有成功

  $(".love_item").click (event) ->
    $(".love_item_item_id").val $(this).data 'id'
    $(".love_item_form").submit()
    $(this).hide(200)

  $("form.love_item_form").submit (evt) ->
     evt.preventDefault()
     $form = $ @
     $form.find(':submit').prop 'disabled', true
     $.post($form.attr('action'), $form.serializeArray(), type: 'json').done (data) ->
       $(event.target).parent().find(".item_info_box").html data

最后一行,上面写着
event.target
,这是我所能找到的。很明显,这个变量并没有被携带,但我真的不知道该放在哪里来实现我的目标。另外,我知道我可以通过表单操作传递额外的参数(换句话说,将它们发送到rails控制器并返回),但我不希望这样。有什么想法吗?

如果你有这样的元素:
Foo

您可以像这样在ajax帖子之后选择它,前提是您仍然拥有
foo1234

$('[data-id="' + id  + '"]').doSomething();

如果您有这样一个元素:
Foo

您可以像这样在ajax帖子之后选择它,前提是您仍然拥有
foo1234

$('[data-id="' + id  + '"]').doSomething();

你根本不需要一张临时表格。类似这样的方法会奏效:

标记示例(请注意数据属性):


你根本不需要一张临时表格。类似这样的方法会奏效:

标记示例(请注意数据属性):


只需使用jQuery的ajax功能

$('.love_item').on('click', function(e) {

  $.ajax({
    type: 'POST',
    url: *insert url here*,
    data: 'id=' + e.currentTarget.data-id,
    success: function(response) {

      var element = e.currentTarget;

      // do whatever
    }
  })
});

只需使用jQuery的ajax功能

$('.love_item').on('click', function(e) {

  $.ajax({
    type: 'POST',
    url: *insert url here*,
    data: 'id=' + e.currentTarget.data-id,
    success: function(response) {

      var element = e.currentTarget;

      // do whatever
    }
  })
});