Mika: Funktionsaufruf mit href="javascript:...

Hallo Zusammen,

ich habe folgendes Element, das ich mir dynamisch per Javascript erstellen lasse. Mit Hilfe des Event-Handlers "onclick" wird die Funktion "deleteRow()" aufgerufen:

//Mit onClick
newLink = document.createElement("a")
newLink.id = index;
newLink.name = "deleteLink";
newLink.onclick = deleteRow;
newLink.innerText = "Zeile löschen";
document.getElementById("tableCol"+index+"7").appendChild(newLink);

function deleteRow(){
  current_index = this.id;
  next_index = current_index;
  next_index++;
  .
  .
  .
}

Funktioniert auch alles prima...

Jetzt will ich aber statt dem "onclick" ein "href" für den Funktionsaufruf verwenden, und habe dem entsprechend meine Funktion angepasst:

//Mit href
newLink.href = "javascript:deleteRow(this.id)";

function deleteRow(current_index){
  next_index = current_index;
  next_index++;
  .
  .
  .
}

Aber die Id wird beim Funktionsaufruf nicht übergeben???

Habe ich einen Fehler gemacht?

  1. Jetzt will ich aber statt dem "onclick" ein "href" für den Funktionsaufruf verwenden, und habe dem entsprechend meine Funktion angepasst:

    Warum?

    Struppi.

    1. Jetzt will ich aber statt dem "onclick" ein "href" für den Funktionsaufruf verwenden, und habe dem entsprechend meine Funktion angepasst:

      Warum?

      weil der Text der auf der Website angeklickt wird eigentlich ein Link sein sollte...

      sprich, beim überfahren mit der Maus soll der Text unterstrichen werden.

      Gruß

      Mika

      1. Hellihello Mika,

        weil der Text der auf der Website angeklickt wird eigentlich ein Link sein sollte...

        sprich, beim überfahren mit der Maus soll der Text unterstrichen werden.

        Aber er ist doch ein Link. Braucht er dazu ein href?. So wie ich es kenne wäre es, falls ein href wirklich nötig ist href="#", ein Dummy, und die onclickfuntion bringt am Ende "return false;", dann kommt der Browser garnichtmal in die Versuchung, den Dummy-Anker zu finden.

        Gruß,

        frankx

        1. Hi,

          Aber er ist doch ein Link. Braucht er dazu ein href?. So wie ich es kenne wäre es, falls ein href wirklich nötig ist href="#", ein Dummy, und die onclickfuntion bringt am Ende "return false;", dann kommt der Browser garnichtmal in die Versuchung, den Dummy-Anker zu finden.

          ich habe es anfangs mit dem "Dummy" versucht, hatte aber das Problem das er dann auf die Homeseite verwiesen hat...

          auf die Idee mit "return false" wäre ich nicht gekommen.

          Funktioniert jetzt wunderbar.

          Vielen Dank für die Hilfe

          Gruß Mika

        2. Grütze .. äh ... Grüße!

          Aber er ist doch ein Link. Braucht er dazu ein href?. So wie ich es kenne wäre es, falls ein href wirklich nötig ist href="#", ein Dummy, und die onclickfuntion bringt am Ende "return false;", dann kommt der Browser garnichtmal in die Versuchung, den Dummy-Anker zu finden.

          Selbst das ist nicht notwendig, denn man kann (fast) jedem Element einen onclick-Handler mitgeben, ein "toter" Link ist dazu nicht erforderlich. Eine fertige Funktion, die mit allen Browsern arbeiten sollte, findet man, wenn man hier im Forum nach dem Suchbegriff addEvent( (mit der Klammer!) sucht.

          Man muß also dann dem Element nur einen Handler zuweisen:

          addEvent(elementreferenz,"click",funktionsreferenz)

          Wenn es nur ein Text sein soll, dann z.B. so:

          <span id="pseudolink1">Text Text Text</span>

          und im JS

          addEvent(document.getElementByID("pseudolink1"),"click",funktionsreferenz)

          (oder bei Bedarf eben per <span name=""> und document.getElementsByName in einer Schleife)

          Wenn das ganze dann noch wie ein Link aussehen soll, kann man das span per CSS entsprechend gestalten.


          Kai

          --
          Der vertuschte Gefahrstoff: Dihydrogenmonoxid
             +---------+
             |   ___   |
          ---+--|_R_|--+---- Widerstand ist zwecklos
          ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
        3. Aber er ist doch ein Link. Braucht er dazu ein href?.

          Ja, sonst ist es kein Link.

          So wie ich es kenne wäre es, falls ein href wirklich nötig ist href="#", ein Dummy, und die onclickfuntion bringt am Ende "return false;", dann kommt der Browser garnichtmal in die Versuchung, den Dummy-Anker zu finden.

          Wenn es kein Link ist, sollte man keinen Link nehmen und braucht dann auch kein href="#".

          --
          Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
          Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
      2. weil der Text der auf der Website angeklickt wird eigentlich ein Link sein sollte...

        sprich, beim überfahren mit der Maus soll der Text unterstrichen werden.

        Die primäre Eigenschaft von Links ist, dass sie eine neue Seite aufrufen, wenn du nur unterstrichenen Text brauchst oder einen anderen Mauszeiger, kannst du dies auch mit den entsprechenden CSS Eigenschaften ändern (auch in deinem JS)

        newLink = document.createElement("span")  
        newLink.style.textDecoration = 'underline';  
        newLink.style.cursor = 'pointer';  
        
        

        Struppi.

      3. weil der Text der auf der Website angeklickt wird eigentlich ein Link sein sollte...

        <a href="*Ziel*" onclick="…>…
        Falls du nichts hast, was "Ziel" sein könnte, hast du keinen Link und solltest keinen verwenden.

        sprich, beim überfahren mit der Maus soll der Text unterstrichen werden.

        Das ist nicht entscheidendes Merkmal eines Links, sondern eine simple Layout-Sache.

        --
        Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
        Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
  2. Hellihello Mika,

    newLink.href = "javascript:deleteRow(this.id)";

    Aber die Id wird beim Funktionsaufruf nicht übergeben???

    Habe ich einen Fehler gemacht?

    Struppis Frage sollte primär beantwortet werden. Was Du da machst, schaut erstmal nicht so sinnvoll aus. Den Parameter musst Du wohl in Hochkommas schreiben ... ('"+this.id+"'). Ansonsten lass dir doch erstmal mit alert() den Übergabeinhalt ausgben - nachdem Du Struppis Frage beantwortet hast.

    Gruß,

    frankx