JavaScript 回调函数中“this”的轻微混淆
$.ajax({url: path_to_file, cache: false, success: function(html_result){
$("#window_" + this.id + "_cont_buffer").html(html_result);})
现在那么。该函数调用位于类的函数中。 this.id
是该类的一个属性。这会将 this.id 的函数值传递到匿名函数的字符串中,还是会在函数实际被调用时尝试对其进行求值,从而没有意义。
如果这不能按我想要的方式工作,您能否建议我如何实现这一目标。
$.ajax({url: path_to_file, cache: false, success: function(html_result){
$("#window_" + this.id + "_cont_buffer").html(html_result);})
Now then. This function call is with in a function of a class. this.id
is a property of said class. will this pass the function value of this.id into the string the anonymous function, or will it try to evaluate it when the function actually gets called, thus making no sense.
If this is not going to work how I want it to, can you recommend how I achieve this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在
$.ajax()
的特定情况下,可以使用context
属性指定this
。因此,Matthew 的解决方案为您提供了在调用$.ajax
函数的函数中指定的this
。您可以参阅 jQuery 文档,了解有关设置
this
用于成功
回调。In the particular case of
$.ajax()
,this
can be specified using thecontext
attribute. So, Matthew's solution gives you thethis
that is specified in the function that you make the$.ajax
function call from.You can see the jQuery documentation for more information on setting the
this
for thesuccess
callback.默认情况下,
this
将是一个内部 jQuery 对象。但是,您可以通过在调用中显式指定context: this
来覆盖它。然后,this
将是您从中调用它的对象。会做你想做的事。
By default
this
will be an internal jQuery object. However, you can override that by explicitly specifyingcontext: this
as part of the call. Then,this
will be the object you're calling it from.will do what you want.