我無法弄清楚這一點。我試圖創建一個純粹在Javascript中的onclick處理程序。將參數傳遞給javascript onclick而不使用HTML
我打算在這裏做的是在這個DIV裏面,有一些我可以點擊的項目集合。目前,這些項目將是從0到9的數字。點擊某個號碼後,屏幕上將彈出一個僅包含該號碼的系統消息。我將問題縮小到僅僅是onclick處理程序定義。
如果我用這個格式:
item[n].onclick=function(n){
handler(n);
}
處理程序將觸發只有當單擊一個數字是正確的,但出現的消息是一些關於鼠標事件。
如果我使用以下格式:
item[n].onclick=function(){
handler(n);
}
的處理程序將通過其又被打印作爲消息的值-1。我認爲這意味着「虛假」。
如何修改這個:
item[n].onclick=function(){
handler(n);
}
,使「N」被用作處理器參數是一樣的,因爲我點擊屏幕上的數字?
我的代碼如下:
<div ID="Itemset"></div>
function handler(n){
alert(n);
}
collections=document.getElementById('Itemset');
for(n=0;n<10;n++){
item[n]=document.createElement('DIV');
item[n].innerHTML=n;
collections.appendChild(item[n]);
item[n].onclick=function(n){
handler(n);
}
}
我正在有效地試圖做的,如果你想了解它的HTML明智的是這樣的:
<div ID="Itemset">
<div onclick="handler(0);">0</div>
<div onclick="handler(1);">1</div>
<div onclick="handler(2);">2</div>
<div onclick="handler(3);">3</div>
<div onclick="handler(4);">4</div>
<div onclick="handler(5);">5</div>
<div onclick="handler(6);">6</div>
<div onclick="handler(7);">7</div>
<div onclick="handler(8);">8</div>
<div onclick="handler(9);">9</div>
</div>
只是我不想寫出onclick="handler(n);"
一百萬次。
有什麼建議嗎?並隨時指向另一個有我需要的答案的資源,如果有的話。
UPDATE
我在尋找與舊的瀏覽器兼容的東西爲好。我將不得不去綁定功能,因爲根據mozilla文檔,它適用於IE 9 +。我正在尋找適用於IE 7+以及其他瀏覽器的東西。如果沒有其他選擇,我可能不得不去找事件監聽器。
你可能需要使用'handler(this.innerHTML);'https://jsfiddle.net/ujzbem71/ – bansi