2017-01-06 5 views
1

私はアヤックス成功かどうかであれば$(この)セレクタの仕事を知っていない、ここでのコードは次のとおりです。

$(".up_button").click(function(){ 
    var idup_post=$(this).attr("data-idupactive"); 
    var userup_post=$(this).attr("data-userupactive"); 

    $.ajax({ 
     url:"ajax/up_actv.php", 
     data:{"idup":idup_post,"userup":userup_post}, 
     type:"POST", 
     success:function(data){ 

      if(data=="upactv"){ 
       alert(data); //just to check if ajax response is correct 
     $(this).css({ 
      "background-image":"url('icons/u.png')" 
     }); 
     } 
     if(data=="updisv"){ 
      alert(data); //just to check if ajax response is correct 
    $(this).css({ 
      "background-image":"url('icons/uf.png')" 
     }); 
     } 


     } 

    }); 

}); 

私が選択したボタンの背景を変更する必要がある、だから、任意のヘルプは

に歓迎されるだろう
+0

ここをクリックしてくださいオブジェクト – Geeky

+0

まあ、いいえ、実際には別のものを指していますが、OPが期待していたものではないという点で正しいです。 –

+0

オブジェクトのイメージを呼び出す代わりにクラスを追加することを考えましたか? –

答えて

7

ここでは、XHR(ajax request)オブジェクトを指します。あなたが変更することができます

参照いずれかを使用してコール/適用したり、変数に参照をコピーして使用することを

チェック

$(".up_button").click(function() { 
    var self = this; 
    var idup_post = $(this).attr("data-idupactive"); 
    var userup_post = $(this).attr("data-userupactive"); 

    $.ajax({ 
    url: "ajax/up_actv.php", 
    data: { 
     "idup": idup_post, 
     "userup": userup_post 
    }, 
    type: "POST", 
    success: function(data) { 

     if (data == "upactv") { 
     alert(data); //just to check if ajax response is correct 
     $(self).css({ 
      "background-image": "url('icons/u.png')" 
     }); 
     } 
     if (data == "updisv") { 
     alert(data); //just to check if ajax response is correct 
     $(self).css({ 
      "background-image": "url('icons/uf.png')" 
     }); 
     } 


    } 

    }); 

}); 

はそれが

+0

はい、それは申し訳ありませんでしたチャージを作った – Geeky

+0

あなたは驚くべきです、たくさんありがとう(y)。私は今問題を理解します –

+0

問題は、このオブジェクトにCSSを設定しようとしています...これはウィンドウ/グローバルobject.soを参照しています。これを参照外の変数にコピーしてアクセスします成功関数内の変数とそれにCSSを適用しようとする – Geeky

3

success(..)thisの機能が別のものを指しているので、ボタン(通常jqXHRオブジェクト)です。

$(".up_button").click(function(){ 
    var idup_post=$(this).attr("data-idupactive"); 
    var userup_post=$(this).attr("data-userupactive"); 
    var button = this; 
    : 
    : 
    success : function(data) { 
    : 
    $(button).css(..); 
    } 

以上をまだajax(..)コンテキストとして、ボタンを割り当てます:

$(".up_button").click(function() { 
    var idup_post = $(this).attr("data-idupactive"); 
    var userup_post = $(this).attr("data-userupactive"); 

    $.ajax({ 
    context: this, // 'this' refers to button 
    : 
    success: function(data) { 
     // now `this` refers to the value of `context` 
    } 
}); 

はのためのjQueryのAjax documentationコンテキストを参照してくださいあなたは、事前にその参照を救うことができるsuccess(..)のボタンにアクセスするには
詳細はこちら

+0

ありがとうございました、それはちょうど良い(y)を –

0

「これは」今表すがお役に立てば幸いです。このスニペットこのコードを使用できるAjaxリクエスト

$(".up_button").click(function(){ 
var idup_post=$(this).attr("data-idupactive"); 
var userup_post=$(this).attr("data-userupactive"); 

var up_btn = $(this); // put the button object inside var 

$.ajax({ 
    url:"ajax/up_actv.php", 
    data:{"idup":idup_post,"userup":userup_post}, 
    type:"POST", 
    success:function(data){ 

     if(data=="upactv"){ 
      alert(data); 
      up_btn.css({ // use the var insted of 'this' 
       "background-image":"url('icons/u.png')" 
      }); 
     } 
     if(data=="updisv"){ 
      alert(data); 
      up_btn.css({ // same thing 
       "background-image":"url('icons/uf.png')" 
      }); 
     } 


    } 

}); 

}); 
+0

ええ、ソリューションでした、ありがとう(y) –

関連する問題