2015-09-18 35 views
0

我有一張3列顯示卡片的表格,like this,所以當我按下卡片時,一個提醒顯示我的號碼,但我不知道如何顯示數字,我試着用href和的onClick,但我沒有成功在js函數中的參數

的HTML

<table id="gallery"> 
</table> 

<script>generateTable3col();</script> 

JS的

function generateTable3col(){ 
    var cards = [5,1,8,3,2,4,6]; 

    var rows = cards.length/3; 
    var columns = 3; 
    var rowNode, columnNode, link, img; 
    var table = document.getElementById("gallery") 
    var image = "backcard.png" 

    for (var r=0;r<rows;r++){ 
     rowNode = document.createElement("tr"); 
     rowNode.style = "width:33%;"; 
     table.appendChild(rowNode); 

     for(var c=0;c<columns; c++){ 
      columnNode =document.createElement("td"); 
      columnNode = table.appendChild(columnNode); 

      link = document.createElement("a"); 
      link.setAttribute("hideNumber", cards[1*r+c]); 

      //here I don't know how do 
      link.href = "javascript:showCard(this)" //this is window object 
      link.onclick = showCard(this); //execute when call the loop not when click 

      img = document.createElement("img"); 
      img.style = "width: 100%;" 
      img.src = image; 

      link.appendChild(img); 

      columnNode.appendChild(link); 

     } 
    } 
} 

//How? 
function showCard(element){ 
    alert("card is: " + element.getAttribute("hideNumber")); //element is object window, not <a> element 
} 
+0

'link.onclik' - 你在這裏有一個錯字。應該是'link.onclick' –

+0

不是我有這個井 – user4768900

+0

你不清楚你在問什麼,你能改善你正試圖解決的問題的措辭嗎? – Kmeixner

回答

0

而是這行:

link.onclick = showCard(this); 

使用此:

link.onclick = function() { showCard(this); }; 

這裏的區別是,在第一種情況下,showCard(this);被立即執行。而在第二種情況下,您將分配一個功能到onclick,只有在發生點擊後纔會執行該功能。

+0

謝謝!!!這項工作對我來說 – user4768900

+0

@ user4768900不客氣!考慮將此答案標記爲已接受。 –