2017-12-26 11 views
0

Ich habe eine Funktion zum Erstellen dynamischer div über Vorlage Literal, in jedem div ich einen Select2 Select Filter hinzufügen möchten, aber wenn das dynamische div auf meiner Seite gerendert wird, select2 nicht initialisieren, Kann jemand das beheben? unten ist ein Beispiel-Snippet-Code:Select2 nicht auf dynamische div

javascript:

function render_report_grid(data){ 
      var details = `<select class="filter_select2 pull-right" 
          id="filter_select2_${data.id}" multiple="multiple" name="select_project"> 
          </select>` 
} 

$('.filter_select2').select2({placeholder: "Select parent",}); 
+1

können Sie ein Snippet oder ein JSFiddle dafür hinzufügen? –

+2

müssen Sie selecte2 auf jedem dynamisch generierten Inhalt re-execute –

Antwort

0

Sie sollten die Einleitung Teil innerhalb der Funktion wie hinzufügen:

function render_report_grid(data){ 
    var details = `<select class="filter_select2 pull-right" 
        id="filter_select2_${data.id}" multiple="multiple" name="select_project"> 
        </select>` 

    $('.filter_select2').select2("destroy").select2({placeholder: "Select parent"}); 
} 

Also jedes Mal, wenn Sie einen neuen select-Tag hinzugefügt ist Initiiere es als select2-Instanz.

+0

hi @ Zakaria, leider funktioniert das nicht, in der Tat kann ich nur 1 dynamisches div nach dem Hinzufügen des Codes –

0

Ich denke, dass das Problem ist, dass Sie die select2 erstellen, bevor Sie es zu Ihrer Seite hinzugefügt haben, so dass, wenn Sie tun:

$('.filter_select2').select2({placeholder: "Select parent"}); 

Die jQuery-Selektor nichts gefunden hat, so müssen Sie fügen Sie es vor dem html hinzu:

var details = '<select class="filter_select2 pull-right" id="filter_select2_${data.id}" multiple="multiple"name="select_project"></select>'; 
$('some_jquery_selector').append(details); 
$('.filter_select2').select2({placeholder: "Select parent"});