2011-08-24 46 views
2

我这里的问题一点点: 我有以下JS功能:的jQuery removeClass问题

function setRounded(divId){ 
    $(divId).addClass("rounded-corners"); 
} 
function unsetRounded(divId){ 
    $(divId).removeClass("rounded-corners"); 
} 

这两个函数之前和事件之后调用:比如我有以下页面:Testing page当我翻转块时我想移除圆角但它不会发生。有刷新方法吗?我隐约有一点点,但没有什么相似之处。

Regards, Sorin!

+0

你的代码是做什么你告诉它来。你可以去除圆角,然后翻转盒子,然后再次添加圆角。请澄清你的期望。 –

+0

您能否进一步解释这是如何被调用的? – Nayish

+0

可能是浏览器问题:在Firefox中,我从来没有看到角落正方形。该类只在动画完成后才被删除,然后立即添加回去。 –

回答

2

你的代码几乎是正确的,实际上这个类是从div中删除的。然而,翻转插件似乎创建了div的副本来创建翻转效果,并且该div的副本仍然具有该类。

您可以在调用.flip之前尝试删除该类,而不是使用onBefore。

+0

它正在工作。你是对的。 –

+0

非常感谢:) –

+0

不客气。我建议你使用JavaScript调试器中内置的Firebug或Chrome。我用removeClass放了一个brak点,然后执行它,并在HTML/CSS选项卡中观察div为什么仍然有边框,并且注意到div的副本。 –

1

它在Firefox 6.0中的表现非常不一致。您是否尝试过改变:

$("#aboutMe").click(function(){ 
    $("#aboutMe").flip({ 
     onBefore:function(){ 
      unsetRounded("#aboutMe"); 
      return; 
     }, 
     ... 
    }); 
}); 

到:

$("#aboutMe").click(function(){ 
    unsetRounded("#aboutMe"); 
    $("#aboutMe").flip({ 
     ... 
    }); 
}); 
+0

我已经用$(“#aboutMe”)解决了这个问题。removeClass(“rounded-corners”)。flip({[...]}); –

+1

*是一种更好的方式 - 我想我认为你已经习惯了'unsetRounded'功能:-) –