2012-03-22 9 views
0

私のページでは、現在の変数を関数AjaxLoaderにパラメータとして渡し、そのクラスを選択する必要があります。 しかし、パラメータとして渡すとうまくいきません。これを行う方法はありますか? 私のコードは以下の通りです。これをjqueryの関数のパラメータとして追加する

$('a').click(function() { 

    var current = $(this).find('td'); 
    current.addClass("selected"); 
    AjaxLoader(current); 

} 

function AjaxLoader(current){ 

    $.ajax({ 
    type: "POST", 
    url: "test1.php", 
    success: function(response) { 
    //this is what I want to do 
    current.addClass("selected"); 
    } 


    }) 


} 
+0

あなたは何のエラーを受け取った要素の子孫を探しますか?そこにあるものを見るためにクラスを追加する前に、コンソールに 'current'を記録しようとしましたか? – slash197

答えて

0

また、あなたは、Ajax引数

$.ajax({..., context: current, success: function() { $(this) // current 

のコンテキストメンバーを使用することができhttp://api.jquery.com/jQuery.ajax/

0

機能を終了していません。また、使用する前に関数を定義することもできます。

function AjaxLoader(current){ 

    $.ajax({ 
     type: "POST", 
     url: "test1.php", 
     success: function(response) { 
      //this is what I want to do 
      current.addClass("selected"); 
      } 
    }); 
} 

$('a').click(function() { 

    var current = $(this).find('td'); 
    current.addClass("selected"); 
    AjaxLoader(current); 

}); 
+0

'AjaxLoader'関数はすでに閉じられています。余分な、無効な ');'を追加しました。しかし、 'click'イベントハンドラにはうまくいきました。 –

+0

おっと、修正されました –

+1

クールです。ただし、関数宣言は宣言されているスコープの先頭に持ち込まれるため、関数を宣言する必要はありません。しかし、それはコードに従うのが簡単になります。 –

0

を参照してください。あなたがタグ内のテーブルを持っている可能性はほとんどありません。 find()の代わりにclosest()またはparent()を入力して、Aタグを含むtdを取得します。 find()

http://api.jquery.com/closest/

http://api.jquery.com/parent/

http://api.jquery.com/parents/

$('a').click(function() { 

    var current = $(this).closest('td'); 
    current.addClass("selected"); 
    AjaxLoader(current); 

}); 

function AjaxLoader(current){ 

    $.ajax({ 
     type: "POST", 
     url: "test1.php", 
     success: function(response) { 
     //this is what I want to do 
     current.addClass("selected"); 
     } 
    }); 
}; 
関連する問題