2016-11-20 2 views
0

Ich benutze aktive Amdin Gem für die Erstellung von Admin-Schnittstelle. Ich nehme an, dass der aktive Admin formtastisch intern zum Erstellen von Formularen verwendet.lade js Datei nach dom Änderungen in Schienen App

In meinem Formular habe ich eine Schaltfläche zum Hinzufügen von Anhängen, die alle Anhänge hinzufügt. Aber ich möchte Nummerierung zu jedem Anhang hinzugefügt geben. So habe ich es implementiert, wie in einer separaten Datei folgt mycustomjs.js

$(document).ready(function(){ 
    $('.has_many_add').on('click', function(){ 
    if($(this).prev(".has_many_fields").length == 0) 
    { 
     count = 0 
    } 
    $(this).prev(".has_many_fields").prepend("<div>"+count++ +"</div>") 
    }); 

    $('.has_many_remove').on('click', function(){ 
    if($(this).parent(".has_many_fields").length) 
    { 
     count--; 
    } 

    }); 

}); 

Aber das Problem ist, dass das Onclick-Ereignis ausgelöst wird, bevor Befestigungselement in Form eingesetzt. Daher wird beim ersten Klick das Element mit der Klasse .has_many_fields nicht gefunden und die Zahl wird nicht eingefügt.

Auf den zweiten Klick funktioniert es gut. Also gibt es eine Möglichkeit, dieses Skript erst auszuführen, nachdem die Attachment-Dom-Elemente eingefügt wurden ??

Finden Sie den Anhang des DOM-Elements, das gerendert wird.

Antwort

1

Dieses ungetestet Fledermaus sollte das Haupt arbeiten:

$(document).ready(function(){ 
    $(document).on('has_many_add:after', function(e, fieldset){ 
    # reimplement your code 
    }); 

    $(document).on('has_many_remove:after', function(){ 
    # reimplement your code 
    }); 
}); 

Sie Vielleicht here etwas mehr Hilfe vollständigen Code finden.

+0

Danke @Timo Schilling. Ich wusste nicht, dass wir Ereignis nach dem Laden bestimmter DOM-Abschnitt anfügen können: nach Methode – rubyist

+0

Nein, Sie missverstehen, dass "has_many_xxxx: nach" sind Ereignisse durch den aktiven Administrator ausgelöst js https://github.com/activeadmin/activeadmin/ Blob/d01155f73a0e2cc27d712792270357e2b3759d05/app/Vermögenswerte/javascripts/active_admin/lib/has_many.js.coffee # L2-L22 –

Verwandte Themen