2017-06-29 2 views
0

http://crlcu.github.io/multiselect/ Verwendung Ich bin nicht in der Lage programmatisch die ‚von‘ & ‚auf‘ Auswahl ‚Reset‘. Nun, es funktioniert das erste Mal, scheitert dann aber weiter.JQuery Multiselect programmatische Auswahl

Die Geige dafür ist https://jsfiddle.net/24690u7c/. Sie können Dinge ohne Probleme nach links & rechts verschieben. Wenn Sie zum ersten Mal auf die Schaltfläche "Zurücksetzen" klicken, funktioniert alles. Dann scheitern nachfolgende Reset-Versuche einfach. Die Reset-Funktion macht folgendes:

  • bewegen alle Elemente nach links
  • Elemente auswählen, die auf der rechten Seite
  • bewegen ausgewählten Elemente auf der linken Seite nach rechts

sein sollte .. Das Problem scheint im Auswahlschritt zu liegen: Ich sehe, dass das Attribut 'selected' gesetzt wird, aber die Elemente werden nicht als für das Plugin ausgewählt angesehen.

Wer in der Lage, mir zu sagen, was ich hier fehlt?

$("#resetDefaults").on("click", function(event) { 
    $('#multiselect_leftAll').trigger('click');   // all to the left 
    $("#multiselect option").each(function() { 
    if ($(this).val() == "A" || $(this).val() == "B") { 
     $(this).attr('selected', true);     // select what should be on the right 
    }             // ... this is I think the issue :-(
    }); 
    $('#multiselect_rightSelected').trigger('click'); // move the selected right 
}); 

Antwort

0

OK, nachdem er mit diesem bastelt, ist die einfachste Sache, die ich tun kann, dies zu Arbeit zu bekommen ist:

A) hinzufügen class='defaultColumn' jedem Artikel möchte ich auf die rechte Auswahl auf ‚Reset‘

B) ändern Sie das obige snippet auf die folgenden:

$("#resetDefaults").on("click", function(event) { 
    $('#multiselect_leftAll').trigger('click');     // all to the left 
    var MS = $("#multiselect").data('crlcu.multiselect');  // grab the current Multiselect instance 
    var $options = $("#multiselect").children('.defaultColumn'); // grab all options of interest 
    MS.moveFromAtoB(MS.$left, MS.$right, $options);    // call the internal function to move the selected options over 
}); 

... ich vermute, dies ist die einfachste ist. Dem Himmel sei Dank ich eine lib chise, die so sauber wie dieses hier war :-) ist

Verwandte Themen