2014-01-31 50 views
0

我已經看過其他答案並嘗試了一些東西,但我似乎無法得到更改的按鈕的名稱。我知道jquery加載正常,我可以通過點擊按鈕執行簡單的警報腳本。但名稱更改似乎不起作用。 我試過了:attr和文本函數。我也試過「this」而不是'#toggleAutoPlayBtn' 還有其他建議嗎?jquery按鈕名稱更改不起作用

<input type ="button" id="toggleAutoPlayBtn" value="PAUSE"/>  



var autoStart = true; 
    $(document).on('click', '#toggleAutoPlayBtn', function(){ 
       if(autoStart) { 
        $('#toggleAutoPlayBtn').text('play'); 
        autoStart = false; 
       alert("play"); 
       } else { 
        $('#toggleAutoPlayBtn').text('pause'); 
        autoStart = true; 
       alert("pause"); 
       } 
    }); 

我使用:

+0

有你關閉腳本'' user2502562

回答

3

您使用input type = button對於這一點,你不能使用.text()方法,因爲它在value屬性中給出。因此檢索它使用

$('#toggleAutoPlayBtn').val('play'); 

其他使用button標記。

<button id="toggleAutoPlayBtn">PAUSE</button> 

這將現在的工作

$('#toggleAutoPlayBtn').text('play'); 
+1

+1了明確的解釋 –

+0

感謝。我改爲val。並嘗試了第二個選項,它仍然無法正常工作。在控制檯中也沒有錯誤。有點茫然。 – user2502562

+0

@ user2502562不,它會工作,檢查這個小提琴http:// jsfiddle。net/praveen_jegan/4MD52/ – Praveen

1

你必須使用value屬性。根據您使用的內容嘗試以下方法。

對於超過1.6老版本,

$("#toggleAutoPlayBtn").attr('value', 'play'); 

對於超過1.6新版本,

$("#toggleAutoPlayBtn").prop('value', 'play'); 
1

試試這個

$('#toggleAutoPlayBtn').val('play'); 
2

按鈕不接受.text()

試試這個:

$('#toggleAutoPlayBtn').attr('value','pause'); 
1

在這裏,你需要使用val()

var autoStart = true 
$(document).on('click', '#toggleAutoPlayBtn', function(){ 
    if(autoStart) { 
     autoStart = false; 
     $('#toggleAutoPlayBtn').val('play'); 
     alert("play"); 
    } else { 
     autoStart = true; 
     $('#toggleAutoPlayBtn').val('pause'); 
     alert("pause"); 
    } 
}); 

Try in fiddle

1

您應該使用$('#toggleAutoPlayBtn').val('play');$("#toggleAutoPlayBtn").prop('value', 'play');

此代碼將改變價值只有一次,而不是切換每次單擊該按鈕,除非你改變autoStart值。

$(document).on('click', '#toggleAutoPlayBtn', function(){ 
     if(autoStart) { 
      $('#toggleAutoPlayBtn').text('play'); 
     alert("play"); 
     } else { 
      $('#toggleAutoPlayBtn').text('pause'); 
     alert("pause"); 
     } 
}); 

對於切換:

var started = true; 
    $(document).on('click', '#toggleAutoPlayBtn', function(){ 
       if(started) { 
        $('#toggleAutoPlayBtn').val('play'); 
        started = false; 
        alert("play"); 
       } else { 
        $('#toggleAutoPlayBtn').val('pause'); 
        started = true; 
        alert("pause"); 
       } 
    }); 

Fiddle

+0

謝謝。我改爲val。我確實有autoStart =!autoStart;並且我嘗試了你使用的確切代碼,我看到它在小提琴中工作,但它仍然無法工作。在控制檯中也沒有錯誤。有點茫然。 – user2502562

+0

@ user2502562您是否檢查控制檯以檢查錯誤? – hemanth

+0

我做了,它報告的唯一錯誤(在我甚至按下按鈕之前)是:event.returnValue已被棄用。請改用標準的event.preventDefault()。不確定它是否與此相關。 – user2502562