2012-09-28 125 views
0

我的頁面上有幾個按鈕,分別是啓動計時器按鈕或「停止計時器」按鈕,它們分別運行startTimer和stopTimer函數。禁用並重新啓用按鈕

在startTimer函數中,按鈕的onclick從startTimer變爲stopTimer,反之亦然。

此刻,一旦點擊,按鈕將一個接一個地運行這兩個函數。

我想讓它運行該功能,然後停止準備再次點擊該按鈕並運行相反的功能。

我一直在探索的一種方法是禁用運行中的按鈕,讓功能檢查啓用的按鈕,運行該功能,然後試圖創建一個事件重新啓用它。這是我正在努力的最後一點。

function startTimer(project) { 
var url = document.URL + '?timer=start&id=' + project; 
var buttonid = 'button' + project; 
var button = document.getElementById(buttonid); 
var stopText = 'stopTimer(' + project + ')'; 
if(button.disabled == false){ 
    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET",url,false); 
    xmlhttp.send(); 
    var result = xmlhttp.responseText; 

    if(result == 'ok'){ 
     button.disabled = true; 
     button.setAttribute("class","btn btn-danger btn-mini"); 
     button.value = "Stop Timer"; 
     button.setAttribute("onclick", stopTimer(project)); 
    } 
    else{ 
     alert("I couldn't start the timer."); 
    } 
} 

}

function stopTimer(project) { 
var url = document.URL + '?timer=stop&id=' + project; 
var buttonid = 'button' + project; 
var button = document.getElementById(buttonid); 
var startText = 'startTimer(' + project + ')'; 

if(button.disabled == false){ 
    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET",url,false); 
    xmlhttp.send(); 
    var result = xmlhttp.responseText; 

    if(result == 'ok'){ 
     button.disabled = true; 
     button.setAttribute("class","btn btn-sucess btn-mini"); 
     button.value = "Start Timer"; 
     button.setAttribute("onclick", startTimer(project)); 
    } 
    else{ 
     alert("I couldn't stop the timer."); 
    } 
} 

HTML/PHP:

<?php if(in_array($project[0], $started)){ ?> 
        <td> 
         <input type="button" class="btn btn-danger btn-mini" value="Stop Timer" onClick="stopTimer(<?php echo $project[0]; ?>)" id="button<?php echo $project[0]; ?>" /> 
        </td> 
        <?php } else { ?> 
        <td> 
         <input type="button" class="btn btn-success btn-mini" value="Start Timer" onClick="startTimer(<?php echo $project[0]; ?>)" id="button<?php echo $project[0]; ?>" /> 
        </td> 
        <?php } ?> 
+1

您能告訴我們一些代碼嗎? – graphicdivine

+0

我添加了Javascript代碼 – user1497049

+1

您正在運行'stopTimer(project)',並將該按鈕的'onclick'設置爲該函數的返回值。 startTimer也一樣。這就是他們爲什麼要打電話給彼此。 – Shmiddty

回答

0

我會建議建立一個功能toggleTimer,並綁定按鈕的點擊了這一點。因此,您只需要相應地調整您的請求的網址,而不是使用按鈕的點擊屬性。

/copypasta