【问题标题】:removeClass() not working?removeClass() 不工作?
【发布时间】:2012-11-07 17:22:13
【问题描述】:

我正在使用一些新的 CSS3 功能来使点击功能看起来像一张翻转卡片。在这样做时,客户要求能够翻转。我正在尝试使用 removeClass() 来实现,但我做不到。 addClass() 工作正常,但“翻转”类没有被删除。我正在使用 jquery 1.8.1。

$(document).ready(function(){
    $('.flipper').click(function(){
        $(this).addClass('flip');
    });
    $('#flipBack').click(function(){
        $(".flipper").addClass('flipBack').removeClass('flip');
    });
});

【问题讨论】:

  • 您的问题的JSFiddle 示例会很有用
  • 还有其他事情发生,您的代码应该可以工作,请在jsfiddle.net 发布示例,以便我们查看您的所有代码。创建缩减时,您通常可以自己看到问题
  • 只是为了确认,你确定$('#flipBack').click(function() 被调用了吗?语法对我来说似乎很好。
  • 当我测试它时它工作正常:jsfiddle.net/kSg89
  • @SpYk3HH 有什么好笑的?我觉得你的&& 很有趣:)

标签: jquery removeclass


【解决方案1】:

也许这两个事件都被调用了。在第二次单击中删除翻转类后,它会在第一次单击中返回

【讨论】:

  • 如果#flipBack.flipper jsfiddle.net/kSg89/1 内部,这是有道理的
  • 由于你没有更新你的答案,我根据你的想法、我的建议和@guffa的jsfiddle创建了一个答案
【解决方案2】:

一些 html 可能会有所帮助,也许是 jsFiddle,但是,您可以一起添加删除。

如果您将 FlipBack 设置为默认类(我假设它可能是动画但具有默认状态),那么您可以更轻松地使用 jQuery 的toggleClass

$(function() {
    $('.flipper').click(function(e) { e.stopPropagation(); $(this).toggleClass('flip flipBack') });
    // and if you really need it, tho i'm still unsure the full functionality here
    $('#flipBack').click(function(e) { e.stopPropagation(); $('.flipper').toggleClass('flip flipBack') });
})

jdFiddle Example

您确定没有同时调用两次点击吗?一些 html 会很有帮助

【讨论】:

    【解决方案3】:

    问题可能在于您的#flipBack 位于.flipper 内部。如果是这种情况,您需要阻止事件冒泡。

    这是问题的示例http://jsfiddle.net/kSg89/1/

    这是解决方案http://jsfiddle.net/kSg89/2/

    $(document).ready(function(){
        $('.flipper').click(function(){
            $(this).addClass('flip');
        });
        $('#flipBack').click(function(e){
            e.stopPropagation();
            $(".flipper").addClass('flipBack').removeClass('flip');
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 2016-11-30
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多