Javascript 在$.post函数中访问$(this)?
我在访问帖子中的$this函数时遇到了很多问题 我只想根据响应删除对象类Javascript 在$.post函数中访问$(this)?,javascript,jquery,html,ajax,this,Javascript,Jquery,Html,Ajax,This,我在访问帖子中的$this函数时遇到了很多问题 我只想根据响应删除对象类 $.post("url.php?"+theData, {}, function(response){ etc..... 它可以与静态ID一起工作,但我更愿意操作$this这是来自异步事件的回调,因此指向元素的this丢失 您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它: $('#something').on('click', function() { $.post('somewhere
$.post("url.php?"+theData, {}, function(response){ etc.....
它可以与静态ID一起工作,但我更愿意操作$this这是来自异步事件的回调,因此指向元素的this丢失 您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它:
$('#something').on('click', function() {
$.post('somewhere.php').done((function(el) { return function(response) {
$(el).removeClass('someClass');
}; })(this));
});
这是来自异步事件的回调,因此指向元素的This将丢失 您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它:
$('#something').on('click', function() {
$.post('somewhere.php').done((function(el) { return function(response) {
$(el).removeClass('someClass');
}; })(this));
});
试一试
试一试
此变量始终指向当前上下文对象
var obj = { // declare object
a: 2,
b: function (p) {
alert(this.a + p); // here 'this' will point to obj if it was run by 'obj.b();'
}
};
obj.b(2); // call it's method
您也可以设置当前的“this”:
var s = { a: 3 };
var obj = {
a: 2,
b: function (p) {
alert(this.a + p); // here 'this' will be s
}
};
obj.b.call(s, 2);
例如,如果在另一个f2中使用两个函数,并且f1的上下文应该在f2中可用,那么最简单的方法是将其存储在变量中
$(buttonSelector).click(function () {
var button = $(this);
$.post(url, function (data) {
//here button is available
};
});
此变量始终指向当前上下文对象
var obj = { // declare object
a: 2,
b: function (p) {
alert(this.a + p); // here 'this' will point to obj if it was run by 'obj.b();'
}
};
obj.b(2); // call it's method
您也可以设置当前的“this”:
var s = { a: 3 };
var obj = {
a: 2,
b: function (p) {
alert(this.a + p); // here 'this' will be s
}
};
obj.b.call(s, 2);
例如,如果在另一个f2中使用两个函数,并且f1的上下文应该在f2中可用,那么最简单的方法是将其存储在变量中
$(buttonSelector).click(function () {
var button = $(this);
$.post(url, function (data) {
//here button is available
};
});
如果您正在执行类似$'element.clickfunction{$.post{的操作,则需要在post之前存储对$this的引用,以便您可以在函数中引用它,如$'element.cilckfunction{var me=$this;$.postrl.php?+数据,{},functionresposne{//me现在是$this;};};这可能只是一个范围问题,但是发布更多的代码,也许可以使用变量来代替,但您的代码示例现在没有显示任何内容?如果您正在执行类似$'element.的操作,请单击函数{$.post{您需要在post之前存储对$this的引用,以便在函数中引用它,如$'element'。cilckfunction{var me=$this;$.postrl.php?+数据,{},functionresposne{//me现在是$this;};};这可能只是一个范围问题,但发布更多代码,也许可以使用变量,但您的代码示例现在什么都没有显示?