所以,我不确定这是否是正确的方法,但我听说使用内联onclick
处理程序而不是jquery处理程序并不是一个好主意。
我有一个用户控制台,带有一个阻止/取消阻止用户的按钮。这是我用来阻止它们的方法:
<script>
$('.fa-unlock-alt').parent().on('click', function () {
var $button = $(this)
var id = $button.attr('id').slice(12);
console.log($(this));
$.ajax({
method: 'POST',
url: '/Websites/TimeTracking/Resources/PHP/Users/blockUser.php',
data: {idUser: id, status: 'Inactivo'},
success: function (result) {
if (result == "Exito") {
alert("El acceso del usuario ha sido bloqueado!");
$button.find('i').toggleClass('fa-unlock-alt fa-lock');
$button.removeClass('btn-outline-success').addClass('btn-outline-danger');
}
console.log(result);
},
error: function (exception) {
alert("No se pudo bloquear el acceso!");
console.log(exception);
}
})
})
</script>
我有类似的功能,但是它会查找.fa-lock
而不是fa-unlock-alt
,它会执行类似的操作,但要解锁而不是锁定。
一旦DOM加载,第一次单击按钮就可以正常工作,ajax调用成功,我的数据库相应更新,类更改为假设,但每当我再次点击它时,它赢了不行。
快速调试显示,即使浏览器显示我想要的颜色和形状,DOM实际上也是在元素属性上注册的默认值。
我应该采取不同的方法吗?
谢谢!