当“喜欢”按钮被点击时,我希望能够在两个功能之间进行切换。
<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”时执行。
hasClass
方法来检查该类是否存在。 - crush.toggle(fn1, fn2)
方法自 jQuery 1.9 版本起已被弃用。 - Alnitak