2013-01-13 35 views
0

如何在單擊時更改按鈕的文字?並再次點擊時將其改回?我有這個JavaScript我made.and它不給我我想要什麼。請幫助?單擊時更改按鈕文字並在再次單擊時將其更改回

+0

爲什麼您使用jQuery('$( '#addbtn')的文本。點擊(函數(){' )和純JS('document.getElementById('addMat')。style.display ==「none」')? – Mooseman

+0

我「認爲」你的$(this)將引用#addMat元素,而不是#addbtn元素。那是你要的嗎? HTML的一小部分將幫助,因爲我不知道哪個元素是按鈕。 – Leeish

+0

您可以使用focus()Psuedo Class在純CSS中執行此操作。創建兩個按鈕,一個顯示無。在focus()上顯示具有更高z-index的另一個按鈕。 Twitter在其推文按鈕中使用此格式 – Ray

回答

2

只要做到這一切與jQuery語法:

$('#addbtn').click(function(){ 
    var addMat = $('#addMat'); 
    if(addMat.css('display') === 'none') { 
     addMat.css('display','inline'); 
     $(this).val('Cancel'); 
    } else { 
     addMat.css('display','none'); 
     $(this).val('Add Material'); 
    } 
}); 
+1

這使得神奇。非常感謝您的先生。 :] – chris

+0

很高興我能幫到你。 – Sam3k

2
$('#addbtn').click(function(){ 
    if(document.getElementById('addMat').style.display === "none"){ 
     document.getElementById('addMat').style.display = "inline"; 
     $(this).attr("value","Cancel"); 
    }else{ 
     document.getElementById('addMat').style.display = "none"; 
     $(this).attr("value","Add Material"); 
    } 
}); 

或更好...

$('#addbtn').click(function(){ 
    if($('#addMat').css('display') === 'none'){ 
     $('#addMat').css('display','inline'); 
     $(this).attr("value","Cancel"); 
    } else { 
     $('#addMat').css('display','none'); 
     $(this).attr("value","Add Material"); 
    } 
}); 
+0

.attr只有在OP使用1.6以前的jquery版本 – Ray

0
$(this).prop('value', 'Cancel'); 

$(this).html('Cancel'); 

做到這一點,最好的辦法是創建一個按鈕,並把span標記周圍

$("span", this).text("My NEW Text");