如果標題沒有真正描述我的問題,我很抱歉。我仍然是新來的javascript/jquery,這是我如何理解問題...
我正在使用一個按鈕來調用一個函數,將一個元素附加到我的網頁。
<button id="bartspbyu" class="btn btn-xs btn-success add-alert" onClick="this.disabled = 'disabled';">Add</button>
正如您所看到的,當它被點擊時,它會自行禁用。它還使用腳本將文本從「添加」更改爲「已添加」:
$('.add-alert').on('click', function() {
$('#added-alert').fadeIn('slow');
setTimeout(function() {
$('#added-alert').fadeOut('slow');
}, 2000);
$(this).text('Added');
});
用戶可以選擇刪除它們添加的元素。當他們刪除元素,該按鈕會變爲再次啓用,使用下面的腳本:
//Reactive Add Button
$(document).on("click", ".drartspbyu", function(){
$("#bartspbyu").removeAttr("disabled");
});
這一切正常,但我試圖讓它在按鈕上的文字改回「添加」。我做了以下:
//Reactive Add Button
$(document).on("click", ".drartspbyu", function(){
$("#bartspbyu").removeAttr("disabled", function(){
$(this).text('Add');
});
});
它再次啓用按鈕,但它不是編輯文本。我不確定是否已經錯誤地設置了$(this)
或者整個事情是錯誤的。
我意識到我可以做類似$("#bartspbyu").text('Add');
的事情,但我使用$(this)
的原因是因爲有數百個這些添加按鈕,我不想花費數小時來編輯每個單獨的ID(#bartspbyu是隻有400多個)之一。如果我能找到一種方法讓它從第一個實例中讀到#bartspbyu,那麼這將節省我數小時的工作時間,因爲我只需要執行Find + Replace並將其添加到所有內容中。
在此先感謝您的幫助!再一次,我仍然是新手,所以我意識到我可能錯過了一些超級明顯的東西。
兩件事。一個 - 'removeAttr'沒有回調(http://api.jquery.com/removeattr/)。只需在下一行調用'.text()'(或鏈接調用)即可。其次,使用'.prop()'來改變禁用狀態 – Ian 2014-10-28 21:41:41