作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个 jquery 代码,当用户修改单元格时执行数据库更新:
$( document ).ready(function() {
$('tr').on('blur', 'td[contenteditable]', function() {
$.post("ajax/modQtyModels", {
modelId: $(this).closest('tr').children('td.idmodel').text(),
qty: $(this).closest('tr').children('td.editQty').text(),
ajax: true,
success: function(data) {
$(this).closest('tr').children('td.editQty').addClass("success");
}
});
});
});
在“成功”部分,我希望它只更改该单元格的类(在使用 Bootstrap 时更改其颜色)以向用户显示他们的数据已成功更改,但它似乎没有注意到它已经改变颜色。我已经尝试了那条线上的所有内容,但我想这条线不是问题所在。警报等其他操作效果很好,所以我怀疑 $(this)。
最佳答案
在 success
回调中,您正在处理另一个 function
,因此 scope
不再是您的 blur
事件 callback
,因此 this
关键字将指向另一个 object
而不是您的 jQuery 元素。
因此您需要将 this
值保存在另一个 variable
中,并在 success
回调中使用此 neww 变量引用您的元素。
(document).ready(function() {
$('tr').on('blur', 'td[contenteditable]', function() {
var tr = $(this);
$.post("ajax/modQtyModels", {
modelId: $(this).closest('tr').children('td.idmodel').text(),
qty: $(this).closest('tr').children('td.editQty').text(),
ajax: true,
success: function(data) {
tr.closest('tr').children('td.editQty').addClass("success");
}
});
});
});
关于javascript - 如何让 jquery 找到该行并在成功时触发一个 Action (使用 "this"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49681493/
我是一名优秀的程序员,十分优秀!