我有按钮的div。如果div是封面,那么按钮的文字就是' Cover'并且它被禁用了。其他按钮有文字'设为封面'并启用。如果我点击其他按钮,它应该将其文本更改为' Cover'并成为残疾人士。那是一个覆盖'应改为'设为封面'并启用。
的JavaScript
function setCoverObject(id) {
var url = "{{ path('collection_set_cover', {'id' : id}) }}";
$.ajax({
url: url,
success: function (data) {
$(this).prop('disabled', true);
$(this).attr('value', 'Cover');
$(this).siblings('.set_as_cover').prop('disabled', false);
$(this).siblings('.set_as_cover').attr('value', 'Set cover');
}
});
}
枝条
{% for object in collection.objects %}
<div class="object">
<button id="cover_button_{{ object.id }}"class="set_as_cover"
onclick="setCoverObject('{{ object.id }}'); return false;">
Set cover
</button>
</div>
{% endfor %}
此代码无效,但在页面重新加载后,将应用所有更改。
答案 0 :(得分:1)
假设setCoverObject
是一个事件处理程序,您需要将AJAX回调绑定到this
值。所以:
success: function (data) {
...
}.bind(this)
如果它不是事件处理程序,那么找到你的button元素并将回调绑定到它。 E.g:
var button = $("#id-of-your-button").get(0)
success: function (data) {
...
}.bind(button)
另外,为了设置按钮文本,你不应该使用按钮的value属性,你应该设置按钮内容,而不是
some_button.attr('value', 'Set cover')
使用:
some_button.text('Set cover')