Funktionsaufruf mit href="javascript:...
Mika
- 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?
Jetzt will ich aber statt dem "onclick" ein "href" für den Funktionsaufruf verwenden, und habe dem entsprechend meine Funktion angepasst:
Warum?
Struppi.
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
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
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
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.
Cü
Kai
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="#".
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.
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.
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