我有一个类叫做:
<div class="upvote"></div>
我目前正在使用 jquery 尝试对某些内容进行投票并为消失设置动画。我不希望一个人能够在不刷新页面的情况下多次对同一件事进行投票。
如果我用
$(".upvote").click(function(){ $(this).fadeOut(); $.ajax({...}); }
它改变了代码并改变了布局。所以我正在使用
$(".upvote").click(function(){ $(this).animate({opacity: "0.0"}); $.ajax({...}); }
这不会改变页面的布局;但是,它允许人们在不刷新页面的情况下多次投票。我在努力
$(".upvote").click(function(){ $(this).animate({opacity: "0.0"}); $(this).removeClass("upvote"); $.ajax({...}); }
这样它就不会再触发 JQuery,但它不起作用。我该怎么办?
我浏览了一些其他 Stack Overflow 线程,但似乎找不到答案。
最佳答案
有很多方法可以做到这一点。
您可以使用事件委托(delegate)并删除该类。
$(document.body).on('click', '.upvote', function () {
$(this).animate({ opacicty: 0.0 }).removeClass('upvote');
});
您还可以使用 one
,它会在调用后自动删除处理程序。
$(".upvote").one('click', function() { ... });
但是,很难理解为什么他们应该在重新加载页面后允许他们再次投票?在不刷新的情况下允许多次投票与刷新时没有真正的区别。
关于javascript - JQuery removeClass 不工作自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27181525/