检测点击了哪个链接?始终返回undefined.什么'It’他错了

Detect which link was clicked? Always returns undefined. What's wrong?

本文关键字:什么 undefined It 错了 返回 链接 检测      更新时间:2023-09-26

我正试图通过输出链接ID来检测前3个链接中的哪一个被点击。

它总是返回undefined

怎么了?

<html>
  <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
      window.onload = function() {
         onclick = function() {
            alert(this.id);
            return false;
         }
          }
    </script>
  </head>
  <body>
    <a class="a" name="a" id="1" href="#">---1---</a>
    <a class="a" name="a" id="2" href="#">---2---</a>
    <a class="a" name="a" id="3" href="#">---3---</a>
    <a href="#"> normal link </a>
  </body>
</html>

您没有针对任何链接。

  window.onload = function() {
    $("a.a").click(function() {
      alert(this.id);
      return false;
    });
  }

这($("a.a").click(function(){)正在查找类名为"a"的锚点上的任何单击事件,并运行以下匿名函数。

您甚至没有使用过一位Jquery。在这里查看我在jsfiddle上制作的jquery版本:http://jsfiddle.net/8tu8W/

将HTML修改了一点

<a class="a" name="a" id="anch1" href="#">---1---</a>
    <a class="a" name="a" id="anch2" href="#">---2---</a>
    <a class="a" name="a" id="anch3" href="#">---3---</a>
    <a href="#"> normal link </a>

更改了锚ID并引入了文档就绪事件。

$(function(){
    $("a.a").click(function(){
        alert (this.id);
    });
});

类似的内容。您将向数组添加可点击链接,然后将点击事件绑定到文档,在事件方法中,您将获得点击目标,并查找它是否在数组中的哪个位置。

window.onload = function() {
  var clickableLinks = [];
  var links = document.getElementsByTagName("a");
  for(var i=0,len=links.length;i< len;i++) {
    var link = links[i];
    if(link.className.split(" ").indexOf("a") != -1) { // Or another detection
      clickableLinks[clickableLinks.length] = link;
    }
  }
  document.attachEvent('onclick', clicked); // IE
  document.addEventListener('click', clicked, false); // Other browsers
  function clicked(event) {
    var target;
    if (event.target) {target = event.target};
if (event.srcElement) {target = event.srcElement};
    var index = clickableLinks.indexOf(target);  
    if(index != -1) {
      alert("clicked at", index+1, "link");
    }
}