gpt4 book ai didi

javascript - 发布前的 ajax 条件变量

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:03 26 4
gpt4 key购买 nike

我有一个赞按钮。它显示在事件提要的每个元素上。我最近还添加了点赞评论的功能。需要一些帮助调整 ajax 来处理这个问题。我目前抓取最近的 .feeditem 并获取 id,该 id 被格式化为具有元素的 ID。

评论显示在相同的 .feeditem div 中,因此单击“喜欢”会执行相同的代码,但不会保存正确的信息。有没有办法让它首先检查其中一个父 div id 是否以 activity-comment- 开头,如果是,让它选择不同的 div,如果它不在那个父 id 中,选择默认值(下方)?

或者如果您有更好的方法来实现这一点,请提出建议。 AJAX 较新,因此这可能不是最有效的方法。

$likeButton.click(function (event) {
event.preventDefault();
var $itemClicked = $(this)

**//START SELECT**
var liking_user_id = $itemClicked.closest('.feeditem').attr('data-member').match(/\d+/);

var activity_id = $itemClicked.closest('.feeditem').attr('id').match(/\d+/);
**//END SELECT**

var data = {
'action': 'save_like',
'activity_id': activity_id,
'liking_user_id': liking_user_id
}
$.ajax({
type: 'post',
url: ms_user_actions.ajaxurl,
data: data,
success: function (response) {
if (!response.success) {
}
if (response.data.like == true) {
$itemClicked.siblings('.feedBox_Likes').text('You Like This!');
$itemClicked.html('Unlike').attr("like", "unlike");
}
if (response.data.unlike == true) {
$itemClicked.html('Like').attr("unlike", "like");
}
}
});
});

最佳答案

由于问题中没有 HTML,因此必须在这里做出一些假设。特别是,我假设你想要 liking_user_idactivity_id在这两种情况下,这两个值都是以相同的方式从相关容器节点 (div) 中读取的。

如果这些假设是有效的,那么最简单的方法可能是设计另一个类名(例如“likeContainer”)并将其应用于外部 (feeditem) 容器和每个内部评论容器。这个类名将附加到任何现有的类名,例如 <div class="feeditem likeContainer">

jQuery 将如下所示:

var liking_user_id = $itemClicked.closest('.likeContainer').attr('data-member').match(/\d+/);
var activity_id = $itemClicked.closest('.likeContainer').attr('id').match(/\d+/);

因此,

  • 当评论的“赞”被点击时,.closest()会找到一个内部评论容器
  • 当点击非评论的“赞”时,.closest()会找到一个外部的 feeditem 容器。

如果假设不成立,那么您可以考虑以不同方式构建外部和内部 div。这可能是阻力最小的路线。

关于javascript - 发布前的 ajax 条件变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889522/

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