2013-09-25 35 views
0

我有這麼多div在主div內,而且很難精確選擇div。 假設是這樣的:回滾類後點擊功能

<div id="main"> 
    <div> 
    <div></div> 
    <div> 
    <div> 
     <div> 
     <div class="myclass"> 
     </div> 
..... 
</div> 

因此,與我的標記,我可以選擇類只是:.myclass

首先,我已經將其刪除myclass類是這樣的:$('.myclass').removeClass('myclass');

下一頁我已經添加添加同一類

所以,我想是這樣的:

$('.thisclass').addClass('myclass').removeClass('thisclass'); 
$('.myclass').addClass('thisclass').removeClass('myclass'); 

但內裏的開/關點擊功能

你可以看到this fiddle這是不是做我想要的。

所以我的關鍵問題是,我怎麼能上的點擊功能後回退以前的階級。點擊後,我需要刪除以前的課程和

一樣的mouseenter和鼠標離開,但我都知道:需要後( '點擊')

+1

你能解釋一下你想如何使用它嗎?它看起來像一個「我想要A,我想到B,我問B」的問題。 – LeGEC

+0

@LeGEC閱讀下面的答案,一切都什麼時候點擊事件發生,那麼它應該動畫到左,再次回調的類,它會停止動畫我的滑塊首先沒有動畫混淆 –

+0

。 –

回答

0

你的意思是這樣的:

$('#clickthis').on('click', function(){ 
    $('.thisclass').addClass('myclass').removeClass('thisclass'); 

//call this function later, after the 'click' event has been handled : 
    setTimeout(function(){ 
     $('.myclass').addClass('thisclass').removeClass('myclass'); 
    }, 0); 
}); 

你不應該使用setTimeout,你應該使用complete回調.animate()功能:

$(...).animate(..., function(){ 
    //this function will be called once the animation is finished 

    $('.myclass').addClass('thisclass').removeClass('myclass'); 
    // add any action you want to take on animation's end 
}) 

所有jQuery的effect functions(如:fadeInslideToggle,等...)接受complete回調。

+0

等待我將測試我的網站後,這樣做,但馬上。 –

+0

沒有它的不工作....確切地說,我的滑塊是沒有動畫第一次發生點擊事件時,它應該動畫到左側,並再次回調該類將停止動畫。 –

+0

我用一秒動畫我的div,所以我用1000代替了0,但是動畫效果很差 –

0

可能,這將幫助你

$('#clickthis').on('click', function(){ 
    $('.thisclass, .myclass').toggleClass('myclass thisclass'); 

}); 

檢查here

+0

不,它不是我需要的切換功能,但是當點擊時,上一堂課應該再回來。 –

+0

它與以前的類來一次,我按了一下,沒有得到你要問什麼 –

+0

當u再次單擊則只有其點擊 –