gpt4 book ai didi

javascript - 在 ajax 事件后查找元素

转载 作者:行者123 更新时间:2023-11-28 16:07:27 24 4
gpt4 key购买 nike

我正在开发一个网站,该网站允许用户喜欢某个项目(就像某个项目)。该事件通过 jQuery 和 AJAX 进行处理。项目数组包含相当多的项目,每个项目都有一个“喜欢”按钮。我决定通过在页面底部放置一个表单并远程提交来有效地减少页面上的表单数量。

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

但是我发现数据响应有点复杂,因为我不知道如何找到我想要更新的项目的元素 id。我不能只使用 thisevent.target 因为它位于不同的事件中。我也尝试过将 event 参数带入 submit 事件,但没有成功。

  $(".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 Controller 并返回),但我宁愿不这样做。有什么想法吗?

最佳答案

您根本不需要任意形式。像这样的事情会起作用:

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

<a href="#" data-id="2" class="likeable">Item to like</a>

jQuery:

$('a.likeable').on('click', function() {
var $item = $(this);
var id = $item.data('id');

$.post('url/like/' + id, function() {
// success
// do something with $item here.
});
});

关于javascript - 在 ajax 事件后查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com