gpt4 book ai didi

javascript - 点赞按钮 - 在两个功能之间切换

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:27 26 4
gpt4 key购买 nike

我试图在单击“赞”按钮时在两个函数之间切换。

 <div class="like">
<div class="count"><%= post.num_likes %> </div>
<div class="icon" id="like"><i class="icon-thumbs-up-alt"></i></div>
</div>

现在我有:

$(".like").click(function(event){       
event.stopPropagation();
$("i", this).toggleClass("icon-thumbs-up-alt").toggleClass("icon icon-thumbs-up");
likePost(TestCanvas, $(this).prev('div').find('.hideThis').text());
});

likePost(canvasID, postID) 获取参数并与 API 交互当我再次点击 .like 时,我想调用 unlikePost()。

当点击 .like 时,是否有一种简单的方法可以在 likePost() 和 unlikePost() 之间切换?

我试过:

$('.like').toggle(function() {
alert('First handler for .toggle() called.');
likePost(TestCanvas, $(this).prev('div').find('.hideThis').text());
}, function() {
alert('Second handler for .toggle() called.');
unlikePost(TestCanvas, $(this).prev('div').find('.hideThis').text());
});

它并没有像我想象的那样工作。似乎在页面加载时执行,而不是在单击 .like 时执行。

最佳答案

切换类。比起阅读元素是否有这样的类——你可以推断出用户是否喜欢或删除了它,就像:

$('.like').click(function() {
var val = parseInt($(this).text(), 10);
$(this).toggleClass('is-liked');

if ($(this).hasClass('is-liked')) {
val++
// User has liked (insert userId, itemId into Likes table)
} else {
val--
// User removed his like (delete from table Likes where userId and itemId)
}

$(this).text(val);
});
.like {
font: 14px/1.4 sans-serif;
display: inline-block;
padding: 3px 10px;
cursor: pointer;
box-shadow: inset 0 0 0 2px #0bf;
font-weight: bold;
user-select: none;
}
.like:after {
content: "👍";
vertical-align: top;
margin-left: 5px;
}

.is-liked {
background: #0bf;
color: #fff;
}
<span class="like">0</span>
<span class="like is-liked">3</span>
<span class="like">6</span>
<span class="like">12</span>

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

关于javascript - 点赞按钮 - 在两个功能之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17412307/

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