Frage Ermitteln welcher Link geklickt wurde? Gibt immer undefiniert zurück. Was ist los mit dir?


Ich versuche herauszufinden, auf welchen der ersten 3 Links geklickt wird, indem ich die Link-ID ausspreche.

Es kehrt immer zurück undefined.

Was ist los mit dir?

<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>

7
2018-06-01 13:05


Ursprung


Antworten:


Sie zielen nicht auf einen der Links.

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

Was das macht ($("a.a").click(function(){) sucht nach Klickereignissen für Anker des Klassennamens 'a' und führt die folgende anonyme Funktion aus.


13
2018-06-01 13:07



Du hast nicht einmal ein einziges Bit von Jquery benutzt. Hier finden Sie die jquery-Version, die ich auf jsfiddle gemacht habe: http://jsfiddle.net/8tu8W/


4
2018-06-01 13:09



Geändert dein HTML ein bisschen

<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>

Ihre Anker-IDs wurden geändert und das dokumentbereite Ereignis wurde eingeführt.

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

2
2018-06-01 13:09



Etwas wie das. Sie fügen klickbare Links zum Array hinzu und binden dann das click-Ereignis an das Dokument. In der Ereignismethode erhalten Sie ein Klickziel, wenn es gefunden wird, und an welcher Position im Array.

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");
    }
}

0
2018-06-01 13:37