2010-06-16 75 views
1
function main(){ 

var delImage=document.createElement("img"); 
delImage.setAttribute("alt","Edit"); 
delImage.setAttribute("src","drop.png"); 

var position=newRow.rowIndex; 
var typeElem=document.createElement("a"); 
typeElem.setAttribute("name","delete"); 
typeElem.setAttribute("href","#"); 
typeElem.appendChild(delImage); 
typeElem.setAttribute('onclick',"delete(position)"); 

newRow.insertCell(lastCell).appendChild(typeElem); 

} 

function delete(pos){ 
alert(pos); 
} 

當錨點標記被點擊時,我無法調用刪除功能...我想要改變什麼來實現這個功能?javascript:定位標記問題

回答

0

嘗試

typeElem.onclick = function(){ 
    delete(position); 
}; 

,並更好地使用像deletePosition更有意義的名稱或類似的東西

0

嘗試改變:

typeElem.setAttribute('onclick',"delete(position)"); 

typeElem.setAttribute('onclick',"delete(" + position + ")"); 
+0

感謝湯姆和拉胡爾·湯姆的答案完全吻合我的recquirement – Raam 2010-06-16 13:11:27

+0

爲什麼我們可以傳遞一個值這樣的,而不是基本的方法是什麼?如果我想傳遞一個值,這樣意味着/ *位置= 1 + 「RAAM」; * /(postion = 1raam)..怎麼可以這個?謝謝。 – Raam 2010-06-21 13:11:03

+0

我們沒有像這樣傳遞一個值,我們正在獲取變量的字面值並將其賦值給屬性函數調用,如果這是有道理的話。很難解釋,也許別人可以做得更好。 – 2010-06-22 00:05:16

0

IE處理setAttribute與其他瀏覽器有所不同,特別是事件處理程序屬性。出於這個原因,爲了更整潔的代碼,避免使用setAttribute更容易,其中DOM屬性已經存在,通常在瀏覽器中統一工作。另外,避免使用JavaScript中的運算符命名的函數。特別是在這種情況下,我會重命名delete()函數。

function main() { 
    var delImage = document.createElement("img"); 
    delImage.alt = "Edit"; 
    delImage.src = "drop.png"; 

    var position = newRow.rowIndex; 
    var typeElem = document.createElement("a"); 
    typeElem.name = "delete"; 
    typeElem.href = "#"; 
    typeElem.appendChild(delImage); 
    typeElem.onclick = function() { 
     doDelete(position); 
    }; 
    newRow.insertCell(lastCell).appendChild(typeElem); 
    typeElem = null; 
} 

function doDelete(pos){ 
    alert(pos); 
}