2011-08-24 73 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'功能:-) –