javascript - 无法将点击事件添加到列表项

标签 javascript html dom-events

这是我第一次尝试将 Javascript 与 HTML 结合使用。我正在尝试将点击事件添加到有序列表中的列表项中,但我的操作方式有些问题不起作用。有人可以帮我解释一下吗?

我在我的 head 中创建了一个函数,该函数应该将指定列表的列表项上的所有点击事件委托(delegate)给给定函数,并且在该给定函数中我尝试使用列表项的文本。最终我想做更多,但我只是想先让简单的点击事件起作用。

<html>
    <head>
    <script type="text/javascript">
      // Attach an event handler to the 'topfriends' list to handle click events.
      function attachEventHandlerToList() {
          document.getElementById("#top4list").delegate("li", "click", function(clickEvent) {
              alert(this.innerHTML());
          });
        }
    </script>
</head>

<body>

    <div id="topfriends">
        <h3>Top 4 Most Friendable Friends</h3>
        <ol id="top4list" onload="attachEventHandlerToList()">
            <li>Brady</li>
            <li>Graham</li>
            <li>Josh</li>
            <li>Sean</li>
        </ol>
    </div>
</body>

最佳答案

让我们做这样的事情

<ul id="parent-list">
    <li id="a">Item A</li>
    <li id="b">Item B</li>
    <li id="c">Item C</li>
    <li id="d">Item D</li>
    <li id="e">Item E</li>
    <li id="f">Item F</li>
</ul>

现在为此编写 javascript

<script type="text/javascript">
    // locate your element and add the Click Event Listener
    document.getElementById("parent-list").addEventListener("click",function(e) {
        // e.target is our targetted element.
                    // try doing console.log(e.target.nodeName), it will result LI
        if(e.target && e.target.nodeName == "LI") {
            console.log(e.target.id + " was clicked");
        }
    });
</script>

请参阅这篇关于 Javascript 事件委托(delegate)的文章 http://davidwalsh.name/event-delegate

此外,下面的链接是我创建的 fiddle http://jsfiddle.net/REtHT/

希望对您有所帮助!

关于javascript - 无法将点击事件添加到列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636043/

相关文章:

javascript - 等待 javascript 函数返回

javascript - 如何为站点范围内的所有链接重定向到不同的域但相同的目录? JavaScript?

javascript - 部分包裹内部 HTML

javascript - 在 Angular JS 中从模型检索 id 到 Controller

javascript - 当我将 html 和正文高度设置为 100% 时,Smooth Scroll 不起作用

第二行的 HTML 中心列表项

Javascript Mootools 点击事件和他的调用者?

javascript - Chrome 功能正常工作,除非您第一次单击它

javascript - 非表单元素有 onselect 事件吗?

javascript - 在滚动上触发事件类,没有 Jquery 的 Angular 5