在ajax回调jquery中使用$(this)

时间:2011-06-10 13:28:37

标签: javascript jquery

我正在对一个php文件进行jQuery.post,文件返回给我一个值。

问题是:为什么$(this)剂量在回调函数中起作用? 使用$(this)传递要显示的内容的任何提醒,返回给我null

$(".class").live("focusout", function(){

    jQuery.post("phpfile.php",
       {
           someValue: someValue
       },
       function(data)
       {
             // why the $(this) dosent work in the callback ?
       }                

    )

});

2 个答案:

答案 0 :(得分:13)

在这种情况下,this不再是同一个对象。之前保存参考并稍后使用:

$(".class").live("focusout", function(){
    var $this = $(this);
    jQuery.post("phpfile.php",
       {
           someValue: someValue
       },
       function(data)
       {
           // 'this' inside this scope refers to xhr object (wrapped in jQuery object)
           var x = $this;
       }                
    )
});

答案 1 :(得分:2)

$(".class").live("focusout", function(){
    var this = $(this);
    jQuery.post("phpfile.php",{
       someValue: someValue
   },function(data){
        // Now use this instead of $(this), like this.hide() or whatever.
   })
});
你的例子中的$(this)指的是我想的$ .post。