簡體   English   中英

如何使 JavaScript 創建的列表項可點擊?

[英]How do I make a JavaScript created list item clickable?

我一直在研究所有相關的問題,但沒有一個解決方案對我有用。 我對 JavaScript 非常陌生,我很困惑如何讓我用 JavaScript 創建的列表具有可點擊的項目。 最近的嘗試包括嘗試在點擊時彈出警報,但它只是在頁面加載的第二秒彈出。 請幫忙! 這是我當前的代碼:

<!DOCTYPE html>
<html>
<head>
 <link rel="stylesheet" href="css/m-buttons.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
div.links{
margin: auto;
 border: 3px solid #003366;
text-align: left;
max-width: 700px;
}
p{
font-size: 40px;
text-align: center;
}
li{
font-size: 1w;
}
body{
font-family: verdana;
}
</style>
</head>
<body>
<div class = "links">
<ul id="blah"></ul>
<script>
var testArray = ["One","Two","Three","Four","Five","Six","Seven"];
function makeLongArray(array){
for(var i = 0; i < 1000; i++){
array.push(i);
}
}
makeLongArray(testArray);
function makeUL(array) {
    // Create the list element:
    var list = document.createElement("UL");
    list.setAttribute("id", "blah");

    for(var i = 0; i < array.length; i++) {
        // Create the list item:
        var item = document.createElement("LI");

        // Set its contents:
        item.appendChild(document.createTextNode(array[i]));

        // Add it to the list:
        list.appendChild(item);
        list.onclick = alert("Help."); //this is the code causing the issue.
    }

    // Finally, return the constructed list:
    return list;
}

// Add the contents of options[0] to #foo:
document.getElementById("blah").appendChild(makeUL(testArray));
</script>
</div>
</body>
</html>

每次執行這行代碼list.onclick = alert("Help.");您現有的代碼都會執行alert('Help.') list.onclick = alert("Help.");

您需要做的是為 onclick 分配一個函數。 然后在執行 onclick 時執行此函數。 如下:

item.onclick = function() {console.log('hello world');};

現在每個列表項的 onclick 事件都有一個分配給它的函數,每次單擊列表項時都會將hello world輸出到控制台。

您需要為 onclick 事件分配一個函數:

list.onclick = function(){ alert("Help."); }

這是我的解決方案:

function toggleDone(event) {
  var ev = event.target;
  ev.classList.toggle("done");
}

ul.addEventListener("click", toggleDone);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM