2013-12-10 29 views
0

我動態創建一個按鈕元素和onclick事件調用函數調用,但它總是說removeimg沒有定義(removeimg是單擊按鈕時調用的函數的名稱)。她代碼:JavaScript函數沒有定義在按鈕單擊

鏈接:

http://shri-ram.lifekloud.com/pilot/step4.php (選項卡中添加刪除照片)

function removeimg(){   
     //make request to remove the name 
     document.getElementById(name).style.display = 'none'; 
     document.getElementById(btn12).style.display = 'none'; 
    } 



    function showUploadedItem (source) { 
     var list = document.getElementById("image-listalbum"), 
      li = document.createElement("li"), 
      img = document.createElement("img"); 
      var btn = document.createElement('input'); 
      btn.setAttribute("type", "button"); 
      btn.setAttribute("value", "Remove"); 
      btn.setAttribute("class", "t-button"); 
      var btnId = "btn" + source + ""; 
      btn.setAttribute("id", btnId); 
      var func = "removeimg()"; 
      btn.setAttribute("onclick", func); 


     img.src = 'uploads/'+source; 
     li.appendChild(img); 
     li.appendChild(btn); 
     list.appendChild(li); 
    } 
+0

爲什麼你不使用jquery這個簡單的任務。 –

+0

使用JQuery,但除此之外,我認爲你需要在字符串內分號: btn.setAttribute(「onclick」,「removeImg();」); – samsquanch

+0

removeimg中的名稱是什麼,它應該在引號中 – Shadow

回答

0

嘗試

btn.onclick = removeimg; 

,而不是你做的字符串版本。

0

Javascript中的函數有一個範圍,因爲它們基本上與任何其他對象相同。由於您的功能是在$(document).ready();函數內定義的,因此它只存在於該範圍內。您必須在ready()函數外聲明它,以便通過單擊按鈕來使用它。