在 jQuery 中维护对此的引用
我正在转换一堆超链接以使用 jQuery 发出简单的 GET 请求。我想在 Ajax 调用中维护对 this
的引用,是否需要使用 bind
/live
/其他东西?
$(document).ready(function(){
$(".mylink").click(function(){
var url = $(this).attr('href');
$.get(url,function(data){
$(this).parent().html(data); // this is now out of scope
});
return false;
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
那应该对你有用。
That should work for you.
您需要将
this
保存到另一个变量,如下所示:AJAX 回调可以访问外部方法的变量,因此这种技术效果很好。
如果您想处理所有
.mylink
元素(甚至是后来添加的元素),则只需调用live
即可。You need to save
this
to another variable, like this:The AJAX callback can access the variables of the outer method, so this technique works fine.
You only need to call
live
if you want to handle all.mylink
elements, even ones that were added later.javascript 中的作用域是一团糟:)
在 jQuery 1.4 中,您有一个内置的代理函数,可以将作用域带入任何回调中,请参阅: http://api.jquery.com/jQuery.proxy/。
但自己创建一个非常容易:
您还可以将范围放入变量中并稍后访问它:
Scoping is a mess in javascript :)
In jQuery 1.4, you have a built-in proxy function that can bring the scope into any callback, see: http://api.jquery.com/jQuery.proxy/.
But it's quite easy to create one yourself:
You can also put the scope in a variable and access it later: