代碼的第一部分工作正常,但現在每個按鈕都出現了,我如何爲每個按鈕添加功能?目前唯一按下的按鈕總是最後一個,其他什麼也不做。如何爲每個按鈕添加功能?
-1
A
回答
0
將其更改爲
{
var output = "";
var data = JSON.parse(e.target.responseText);
for(var i=0; i<data.length; i++)
{
output = data[i].title + ' ';
var p = document.createElement("p");
var div = document.getElementById("response");
var textNode = document.createTextNode(output);
p.appendChild(textNode);
var button = document.createElement("button");
button.innerHTML = "Download";
p.appendChild(button);
div.appendChild(p);
button.addEventListener ("click",() =>
{
alert("Test");
});
}
}
+0
好像當我這樣做時,java腳本的第一位不再執行任何操作 – hithere
0
你出添加下面的代碼側的for循環
button.addEventListener ("click",() =>
{
alert("Test");
});
保持上面的代碼中的for循環。因此,對於每個按鈕,將添加事件偵聽器。
+0
唯一的問題是,當我將它添加到循環中時,所有的javascript停止工作 – hithere
0
另一種方式來處理,這將是對回調函數添加到元素的原型的onclick
變量:
function doStuff() {
var output = "";
var data = JSON.parse(e.target.responseText);
for (var i = 0; i < data.length; i++) {
output = data[i].title + ' ';
var p = document.createElement("p");
var div = document.getElementById("response");
var textNode = document.createTextNode(output);
p.appendChild(textNode);
var button = document.createElement("button");
button.innerHTML = "Download";
// Adds the callback function here
button.onclick =() => {
// fill in your arrow function here...
alert("Test");
};
p.appendChild(button);
div.appendChild(p);
};
}
doStuff();
Here是的jsfiddle
0
您應該使用event delegation動態添加元素
// sample data
var data = [{
title: 'one'
}, {
title: 'two'
},{
title: 'three'
}];
var output = "";
for (var i = 0; i < data.length; i++) {
var output = data[i].title + " ";
var p = document.createElement("p");
var div = document.getElementById("response");
var textNode = document.createTextNode(output);
p.appendChild(textNode);
var button = document.createElement("button");
// added output to button text for identification
button.innerHTML = output + " Download";
p.appendChild(button);
div.appendChild(p);
}
// Get the parent element, add a click listener
document.getElementById("response").addEventListener("click", function(e) {
// e.target is the clicked element!
// If it was a button
if (e.target && e.target.nodeName == "BUTTON") {
// Button found! Output the identifying data!
// do other work on click
document.getElementById("display").innerHTML = e.target.innerHTML + " Clicked";
}
});
<div id="response"></div>
<div id="display">Display</div>
相關問題
- 1. 我如何能在表中添加圖像爲每個按鈕
- 2. 添加按鈕功能
- 3. 爲每個按鈕添加聲音
- 4. 按鈕矩陣/多按鈕+功能爲每一個
- 5. 如何向按鈕添加第二個功能?
- 6. 如何在單擊單選按鈕上添加兩個功能
- 7. 如何添加另一個功能來改變屏幕按鈕?
- 8. 如何將功能添加到我的成功按鈕?
- 9. 如何添加一個按鈕作爲
- 10. 添加功能的Android按鈕
- 11. 添加功能按鈕使用Pyqt5
- 12. 如何向按鈕添加滑動功能?
- 13. 如何在按鈕點擊功能上添加數值?
- 14. 如何將圖標添加到MFC功能區按鈕
- 15. 如何...將客戶端功能添加到回發的按鈕?
- 16. 如何添加按鈕功能列表視圖
- 17. 如何將按鈕功能添加到片段中
- 18. 如何在android手機首頁按鈕上添加功能?
- 19. 如何在TreeView的每個節點旁添加一個按鈕?
- 20. 如何爲頁面上的每個鏈接添加Facebook按鈕,linkedin分享按鈕和Twitter推文按鈕?
- 21. 如何將過濾視圖添加到功能區「添加現有」按鈕
- 22. 如何在Android中爲每個按鈕水平添加2個按鈕,寬度爲50%?
- 23. 如何爲每首曲目添加播放和停止按鈕?
- 24. 爲ExpandableListView中的每個組添加一個按鈕
- 25. 試圖向c中的按鈕添加「快進」功能到一個按鈕#
- 26. ?按鈕功能的另一個按鈕
- 27. 如何在每個單選按鈕上添加變量?
- 28. 如何在每個Android活動中添加圖像按鈕?
- 29. 如何在每個TextView末尾添加可點擊的按鈕?
- 30. 如何向每個行表添加編輯和刪除按鈕
執行'button.addEventListener(...)'_in_而不是在循環之後。 – Andreas
也許如果你沒有使用完全的任意縮進,你可以更清楚地看到程序流程中的錯誤。 –
對不起,我已經把它整理好了 – hithere