如果标题没有真正描述我的问题,我很抱歉。我仍然是新来的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