为什么我不能在 ajax 成功中访问 $(this)
Why can't I access $(this) in ajax success
这个问题很简单,我无法在我的jQuery ajax调用的成功部分中引用$(this)
,例如这不起作用(隐藏点击的元素):
$('.assigned').click(function (event) {
event.preventDefault();
$.post("@Url.Action("method", "controller")",
{
TicketId: $(this).data("ticketid"),
},
function (data, status) {
$(this).hide();
});
});
值得注意的是,数据已发送。但是,这可以很好地隐藏元素:
$('.assigned').click(function (event) {
event.preventDefault();
$(this).hide();
$.post("@Url.Action("method", "controller")",
{
TicketId: $(this).data("ticketid"),
},
function (data, status) {
});
});
为什么会这样?
在火狐中测试
你必须问问自己,你在这个代码中的位置?这将适用于什么?
您当前在:
function(data, status){
}
或:
$.post("@Url.Action("method", "controller")",
{
TicketId: $(this).data("ticketid"),
}
因此,这将适用于您的函数,而不是您的元素。
只需做:
$('.assigned').click(function (event) {
event.preventDefault();
var $this = $(this);
$this.hide();
$.post("@Url.Action("method", "controller")",
{
TicketId: $this.data("ticketid"),
},
function (data, status) {
$this //will work here
});
});
单击时将this
分配给变量,然后使用该变量将其隐藏:
$('.assigned').click(function (event) {
event.preventDefault();
var $t = $(this);
$.post("@Url.Action("method", "controller")",
{
TicketId: $(this).data("ticketid"),
},
function (data, status) {
$t.hide();
});
});
相关文章:
- 为什么我不能在 ajax 成功中访问 $(this)
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- React Native can'无法在render()方法之外访问this.ops
- 通过函数传递“this”时,我是否可以无法访问“this”的属性
- 在 JavaScript 中的异步回调函数中访问“this”
- 在 HTTP 错误回调中访问“this”
- jQuery - 如何在 jquery 中访问 “this.options” dataSousrce 属性
- 在jQuery的.on()数据对象中访问$(this)
- 全局范围 - 在触发事件侦听器后访问“this”
- 从原型中的事件访问“this”
- Javascript原型和访问“this”的父对象
- Backbone/Javascript scope.如何在 .each 中访问 this.el
- 从其他函数访问“this”类型的JavaScript变量
- 反应:如何访问this.props.children中的参考文献
- 当我使用一个方法作为回调时,它似乎无法访问“this”.为什么?
- 为什么可以't我在对象文字中访问this.properties
- 为什么可以't我在箭头函数中访问“this”
- 无法在extjs中访问this.myvar
- 为什么不是在 JavaScript 中匿名函数之外访问“this”对象的关键字
- 如何访问“this”;对象