2013-05-19 83 views
4

我有了一個onclick="bold()"一個按鈕,它應該被從正常到大膽,然後再更改字體粗細正常。但它沒有做任何事情。我需要更改或添加什麼?這裏是一個的jsfiddle是否有幫助:http://jsfiddle.net/dZVfh/按鈕,使textarea的文本加粗

<script> 
    var x = document.getElementById('description-box'); 
    function bold() { 
     if($(x).css("font-weight") == "normal") { 
     $(x).css("font-weight"), "bold"); 
     } 
     else { 
     $(x).css("font-weight", "normal"); 
     } 
    } 
    </script> 

回答

3

。在你的代碼中的語法錯誤:

變化

$(x).css("font-weight"), "bold");

$(x).css("font-weight", "bold");


全功能

function bold() { 
    var x = $('#description-box'); 
    if (x.css("font-weight") !== "bold") { 
     x.css("font-weight", "bold"); 
    } else { 
     x.css("font-weight", "normal"); 
    } 
} 

工作小提琴http://jsfiddle.net/dZVfh/3/

有在原始撥弄了一些問題。

  • jQuery的沒有被包括

  • 的函數內部domReady定義 - 這意味着點擊按鈕

  • 的CSS塊有一個語法錯誤時,它是不可見的。風格是被關閉了)代替}

  • 你竭力想避免的元件分配給x前的DOM準備好了。新小提琴做到這一點的功能(通過時間的DOM就緒)

+0

好的,但它仍然無法正常工作。 – user2371301

+0

貌似問題是,你正試圖將元素'x'分配前的DOM已準備就緒。用上面的編輯替換腳本塊應該工作。 – techfoobar

+0

我使用了上面的更新編輯,沒有任何改變。 :'( – user2371301

3

我寧願把它改類中:

添加這種風格

.bold{ 
    font-weight: bold; 
} 

改變你的函數:

function bold(){ 
    if($(x).hasClass("bold")) { 
    $(x).removeClass("bold"); 
    } 
    else { 
    $(x).addClass("bold"); 
    } 
} 
+0

您可以縮短這個'函數大膽(){$(X) .toggleClass( '粗體')}' – PSL