• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

parameter übergabe, Syntaxprobleme

musclebreast

Mitglied
Hallo,

ich stelle mich heute wieder zu doof an, aber ich sitze schon mehrer stunden dran und kommen nicht drauf. Da ist wieder ein grosses Brett. Ich habe eine Funktion duplicate, welche Zeilen dubliziert. Dies funktioniert gut. In dem Besipiel ist es nur eine Spalte mit einem Link um die Zeile dann wieder zu entfernen. Der Punkt ist die Remove Funktion wo ich mit "this" das aktuelle Objekt übergebe. Das funktioniert! Will ich aber einen zweiten Parameter übergbene kommt der Fehler "objname is undefined".

Code:
function Duplicate(label,objname,rowname) {



$(rowname).last().after('<TR class="row_'+objname+'"><td><A HREF="#" ONCLICK="Remove(this,objname)")><IMG SRC="/img/websbroker/delete_row.gif" WIDTH="16" HEIGHT="16" ALT="Remove" BORDER="0"></A></td></tr>');

}



<!-- This function removes a row for text fields-->


function Remove(row, objname) {

    alert(objname);
     $(row).remove();
    
    

}








Daraufhin habe ich es mal versucht ohne onclick die Funktion aufzurufen. Im folgenden Versuch wird jetzt "objname" übergeben, aber this wird nicht richtig übergeben...irgendwas übersehe ich hier grundsätzlich




Code:
function Duplicate(label,objname,rowname) {



$(rowname).last().after('<TR  class="row_'+objname+'"><td><A HREF=\'javascript:Remove("'+this+'","'+objname+'")\'><IMG  SRC="/img/websbroker/delete_row.gif" WIDTH="16" HEIGHT="16" ALT="Remove"  BORDER="0"></A></td></tr>');

}



<!-- This function removes a row for text fields-->


function Remove(row, objname) {

    alert(objname);
     $(row).remove();
    
    

}


Ich hoffe ihr habt den erlösenden Tipp. Ich sehe den Wald vor lauter Bäumen nicht mehr.

LG,

Lara
 
This kann entweder eine Referenz auf das aktuelle Objekt, oder falls es aus einer gekapselten, nicht-öffentlichen Funktion aufgerufen wird, auf das window object sein. Wenn du es in Anführungsstriche setzt, übergibst du aber einen String und kein Objekt.

Lösche mal das JavaScript (onclick) aus dem HTML und baue eine simple Duplicate-Funktion. Zum Entfernen von nach dem Aufbau des DOM erzeugten Elementen schreibe eine weitere Funktion und zwar mit einem Event-Listener. Das könnte in der einfachsten Variante so aussehen:

Code:
var selector = 'tr' // tablerow, was auch immer

$(selektor).on('click', function() {
    $(this).remove()
});
 
Zurück
Oben