2011-11-11 22 views
1

私はjqueryの関数に通じ変数を渡すに問題があります。jqueryのコールバック関数に変数を渡す

function showImage(type, top, url) { 
$.getJSON('<?php echo $_SERVER['PHP_SELF']?>',{ 
    type: type, 
    top: top, 
    img: url, 
    action: 'imginfo'  
    }, function(retval) { 
     if (retval['isimg']) { 
      $('#tdDimensions').html(retval['dimension']); 
      $('#thPreview').html(retval['previewtext']); 
      alert($('#tdPreview').html()); 
      alert(img); 

これは私のコードの一部ですが、問題はその成功機能(function(retval))でIですもはやshowImage()に渡されたパラメータにはアクセスできません。

このコードのalert(img)が機能するように、どうすれば実現できますか?

答えて

4

このコードのアラート(img)が機能するように、どうすれば実現できますか?

だけshowImageからurl引数を使用する - あなたのコールバックを、内側の関数として、それへのアクセスを持っています。理由がわからない場合は、closuresをご覧ください。

+0

申し訳ありませんが、私はコールバック内からヴァルスにアクセスする際に問題があると思っていましたが、それはちょうど私自身のばかげたものでした...しばらくお待ちください! –

2

alert(url)は、この場合には、トリックを行う必要があります;)

また、あなたがしたい場合ので、あなたはそのプロパティのいずれかにアクセスすることができ、可変

var params = { 
    type: type, 
    top: top, 
    img: url, 
    action: 'imginfo'  
}; 

$.getJSON("<?php echo $_SERVER['PHP_SELF']?>", params, function(retval) { ... }); 

で匿名オブジェクトリテラルことを置くことができます。

alert(params.img); 
関連する問題