2015-06-30 28 views
0

我正在創建一個用於點擊劇本文本的劇本標記腳本,文本將根據分配給它的類而變爲空白或更改字體顏色。我更喜歡Javascript的菜鳥。如何在onclick後更改課程

我的腳本只有當它是空白時單擊被欺騙的文本時才起作用 - 所以當我已經點擊它時,我無法重新將它改回來。

這裏是工作的代碼:

// Hide Spoiler Individually 
var singleHidden = document.getElementsByClassName("hidden"); 

var hideMe = function() { 
    var attribute = this.getAttribute("hidden"); 
    this.className = "show"; 
}; 

for (var i = 0; i < singleHidden.length; i++) { 
    singleHidden[i].addEventListener("click", hideMe, false) 
}; 

這裏有一個的jsfiddle鏈接。 https://jsfiddle.net/o94c00hb/

+1

我建議你使用jQuery,它有類'addClass','removeClass'和'toggleClass'這真的很方便 – depperm

+0

我建議不要使用jQuery,除非你需要它更多因爲或者它填補了一些其他的依賴。如果您只需添加或刪除類,那麼現代瀏覽器的JavaScript [本地支持](https://developer.mozilla.org/en-US/docs/Web/API/Element/classList),其功能類似於' classList.add()','classList.remove()'和'classList.toggle()'。 –

回答

1

試試這個:

var hideMe = function() { 

    if(this.className == "hidden") 
     this.className = "show" 
    else 
     this.className = "hidden" 
}; 
+0

它的工作原理!請問,「這個」是如何工作的?我發現它在JS中使用令人困惑。 – sinfruit

+0

這是一個簡單的if/else條件來切換'className'。正如其他人在其他答案中發佈的一樣;使用像JQuery這樣的庫更好,而不是寫入原始JS。 JQuery將處理使用原始JS時經常出現的所有跨瀏覽器不兼容問題。 – Michael

0

如果你不反對使用jquery我會做這樣的事情:

$('.hidden').on('click', function(){ 
    $(this).toggleClass('show'); 
}); 

JSFIDDLE