2012-09-23 57 views
0

根據之前回答的問題,我已經制作了這個腳本,它向元素onClick添加了一個CSS類。問題是它只能使用一次。如何重設功能?jQuery onClick動作不會第二次觸發

這是jQuery代碼:

jQuery(function() { 
jQuery('.close-button').click(function(){ 
    jQuery(".content-display").addClass("cover"); 
    jQuery(".close-button").addClass("cover"); 
}); 

jQuery('.project').click(function(){ 
    jQuery('.content-display').addClass("uncover"); 
    jQuery('.close-button').addClass("uncover"); 
    }); 
}); 

並與一切fiddle

+0

你是什麼意思「重置功能」? –

+0

我的意思是,如何讓腳本每次都能工作,而不僅僅是一次。 –

回答

2

您需要刪除替代課程。當您按下無論是在當前的代碼密切和項目時,有兩個覆蓋和打開類

jQuery(function() { 
    jQuery('.close-button').click(function(){ 
     jQuery(".content-display").addClass("cover").removeClass("uncover"); 
     jQuery(".close-button").addClass("cover").removeClass("uncover"); 
    }); 

    jQuery('.project').click(function(){ 
     jQuery('.content-display').addClass("uncover").removeClass("cover"); 
     jQuery('.close-button').addClass("uncover").removeClass("cover"); 
    }); 
}); 

爲了揪出類的這種特殊情況下的使用似乎是不必要的,我投了簡單removeClass溶液(@Stuart Feldt)

+0

是的,鏈接會提高可讀性和性能。 –

4

使用.toggleClass()代替:

jQuery('.project').click(function(){ 
     jQuery('.content-display').toggleClass("cover"); 
     jQuery('.close-button').toggleClass("cover"); 
    }); 
}); 

這樣,如果該類已經存在,它會被刪除;否則,它將被添加。另外,您應該切換cover類,因爲div最初是可見的。

DEMO

+0

在單擊X按鈕時也應該刪除未發現的類。 –

+0

只有您有對稱動作時,切換纔有效。如果你不想讓項目信息按鈕同時隱藏和取消隱藏 - 你不能使用toggle – UncleGene

1

如果你只是想隱藏和顯示DIV,你可以嘗試:

jQuery(function() { 
    jQuery('.close-button').on('click', function(){ 
     jQuery(".content-display").addClass("cover"); 
     jQuery(".close-button").addClass("cover"); 
    }); 

    jQuery('.project').on('click', function(){  
     jQuery(".content-display").removeClass("cover"); 
     jQuery(".close-button").removeClass("cover"); 
    }); 
});