JQuery - clone (true) anders

k3nguruh

Erfahrenes Mitglied
Hallo,

Ich mochte eine Zeile clonen (kein Problem)... Nur kann ich leider nicht clone(true) benutzen, da ein <input /> Feld ein ui-autocomplete ist. Jetzt ist aber in der zu clonenden Zeile ein Button enthalten, dem ich vorher mit
PHP:
$('.klickBtn').on('click', function () {
    //.....
});
ein click-Event zuweise. Ohne clone(true) geht der "click" verloren (soweit mir bekannt).

Jetzt dachte ich mir folgendes:
- lese in der zu clonende Zeile alle Elemente aus
- prüfe ob ein Event am Element vorhanden ist
- merke die Events vom Element
- clone() jetzt die komplette Zeile
- geclonte Zeile erneut durchlaufen
- ggf alle Events an das Element wieder binden.

Nur weiss ich nicht, ob man das überhaupt auslesen kann, und wenn ja, wie der "Befehl" dazu lautet....
 
Mein Problem hat sich erledigt.

Ich bin von einer falschen Überlegung ausgegangen... Anstatt wie oben "gedacht" habe ich das mal umgedreht, da dass Problem ja das autocomplete-Feld war, habe ich dann dort angegriffen.
Da beim clonen eh alle Elemente eine andere ID bzw. NAME bekommen, ist bereits eine Schleife vorhanden, die jedes Element durchgeht, und dort fange ich dann mit meiner Funktion das autocomplete-Feld ab und gebe es in geänderter form zurück.

Javascript:
//
var __reInitAutocomplete = function($thisElem) {

    if(!$thisElem.hasClass('ui-autocomplete-input'))
        return;

    var $newElem = $('<input />');
    var attrs = {};

    $.each($thisElem[0].attributes, function() {
        if(this.specified)
            attrs[this.name] = this.value;
    });

    $newElem.attr(attrs);
    $newElem.val($thisElem.val());
    $newElem.myAutoComplete();

    $thisElem.replaceWith($newElem);
}; // END: __reInitAutocomplete
Anm.: myAutoComplete() ist nur eine Funktion die ich nochmal um das ui-autocomplete gelegt habe, um das UI-Plugin ggf. besser zu händeln.

Edit: Irgend wie finde ich nicht den Button "Thema erledigt".....
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück