2012-09-24 98 views
0

我是Jquery編碼的學習者,我的任務是顯示/隱藏點擊元素SPAN元素。我試圖與不工作下面提到的jQuery代碼..在jQuery中顯示隱藏元素表元素

HTML代碼:

foreach($array as $key => $arrValue) { 
    <span id="link<?=$count?>">$key</span> 
    <table id="tbl<?=$count?>"> 

     foreach($arrValueas $key => $value) { 
      <tr><td>$value</td></tr> 
     } 
    </table> 
} 

我jQuery代碼是:

$(function(){ 
    // To open/close field's group div 
    $("span").each(function (i){ 
     i++; 
     $('#link' + i).click(function (i) { 
      $('#tbl' + i).toggle(800); 
     }); 
    }); 
}); 

請避免PHP打開關閉在HTML代碼中標記問題..

+0

而你的問題是...?請爲我們提供生成的html。 – Johan

回答

2

試試這個

$(function(){ 
    $("span").each(function (i){ 

     (function(i) { 

      $('#link' + i).click(function() { 
       $('#tbl' + i).toggle(800); 
      }); 

     }(i)); 

    }); 
}); 

你不需要增加與i++變量oyherwise你不會將有望link元素上的處理程序。 Each()已經增加變量i

+0

感謝您的回覆......我絕對明白您的觀點。 –

+0

出於好奇,爲什麼click委託包裝在一個函數中? –

3
$("span").each(function(){ 
    $(this).click(function() { 
     $(this).next('table').toggle(800); 
    }); 
}); 
+0

是的,這是更好(和更短):+1 – fcalderan

+0

謝謝..馬泰米海,但我不知道爲什麼這不是爲我工作..因爲我也同意法布里奇奧卡爾德蘭.. –

+0

這是爲我工作..請結帳這個http://jsfiddle.net/n6w3w/ –

1

嘗試這種方式來匹配兩種不同的元素組:

Here is jsFiddle.

var thumbs = $('ul.thumbHolder li'); 
var bigImg = $('ul.imgHolder li'); 

thumbs.click(function() { 
    var target = $(this).index(); 
    bigImg.each(function(i){ 
     if(i != target){ 
      $(this).fadeOut(300); 
     }else{ 
      $(this).fadeIn(300); 
     } 
    });  
});​