2012-03-06 5 views
1

http://gidzior.net/svg/pom01.htmlパネルは「#右のパネル李」で、赤いボタンが「div.save」「#の右パネルからインデックスiは、右のボタン

ボタンでクリックしてるたびに変化していますli 'はウィンドウを開き、' div.save 'ボタンを押して閉じると'#right-panel li 'が再び開くはずです

1から9までの番号のボタンをクリックすると、スクリプトは0 1から9までのインデックスとインデックスは01,02,03です。インデックスを再びクリックすると、インデックスは001,002,003、...などとなります時間? 01、02、03、04、05、06、07、08、09

//OPEN A WINDOW 
    $('#right-panel li').each(function(e){ 
     var i = $(this).index()+1; 
     $(this).click(function(){ 
      if(i<=9){ 
       i = "0"+i; 
      } 
      $('#pom01par'+i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom02par'+i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom03par'+i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom04par'+i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom05par'+i+'WraperAbsolute').fadeIn("fast"); 
      $(this).css('background','#adff84'); 
      $('.par'+i+'table').css('background','#adff84'); 
      return false; 
     }); 
    }); 


    // CLOSE A WINDOW 
    $('div.save').click(function(){ 
     $(this).parent().fadeOut("fast"); 
    }); 
+0

私は数ではない、それはあなたのコンテキスト内の文字列です。 –

+0

@ EvilP:それは様々です。数字で始まり、文字列になります。 –

答えて

1

私に飛び出し問題がある:あなたがiの値を変更している

if(i<=9){ 
    i = "0"+i; 
} 

代わりにクリック機能に別の変数を使用します。

$('#right-panel li').each(function(e){ 
     var i = $(this).index()+1; 
     $(this).click(function(){ 
      var this_i = i; 
      if(this_i<=9){ 
       this_i= "0"+i; 
      } 
      $('#pom01par'+this_i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom02par'+this_i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom03par'+this_i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom04par'+this_i+'WraperAbsolute').fadeIn("fast"); 
      $('#pom05par'+this_i+'WraperAbsolute').fadeIn("fast"); 
      $(this).css('background','#adff84'); 
      $('.par'+this_i+'table').css('background','#adff84'); 
      return false; 
     }); 
    }); 
+0

は完璧なTHXたくさん – gidzior

+0

私は完全に意味:] – gidzior

0

私はあなたがclick(関数のスコープでiを定義する必要があり、またはより良いyet-がすべてでそれを定義しないと思います:

$(this).click(function(){ 
var iAsString = $(this).index()+1 + "";    
if($(this).index()+1<=9){ 
       iAsString = "0"+iAsString; 
      } 
+0

01、02、03 ... 09のみにこの条件を書く方法 – gidzior

-1

あなたがそのようなことをやっている理由を私は理解していないが、私は非常に短いソリューションが付属しています。 このよう

if(i<=9 && i.length==1){ 
    i = "0"+i; 
} 

あなたが数として、文字列としてi両方の値をチェックするつもりだ。この方法は条件を変更してください。

+0

え? 'length'は関数ではなく、' = 'がありません。 – elclanrs

+0

'length'は文字列のプロパティであり、関数ではありません。そして条件は 'if(i.length == 1)i =" 0 "+ i;'のような2つの '='で書かれています。 –

+0

ええ、私は間違いを素早く書いていました...回答編集 – themarcuz

0

エラーについてはわかりません。

しかし、自分のインデックスを作成しようとしています。

変更

var i = $(this).index()+1; 

++私を入れてループの最後で

var i = 1; 

することにより、

$('#right-panel li').each(function(e){ 
...... 
i++; 
} 
関連する問題