Ehrlich gesagt ist die einfachste Lösung nur die Implementierung von selectGroup zu ändern. Ich denke, es sollte sein:
function selectGroup(e) {
if(e.data.dlb.settings.moveOnSelect) {
move(e.data.dlb);
}
e.preventDefault();
}
Sie werden wahrscheinlich eine ähnliche Änderung unselectGroup
machen wollen. Die aktuelle Implementierung hat ein merkwürdiges Verhalten, bei dem Dinge, die nicht ausgewählt sind, verschoben werden, da sie niemals alles richtig abwählen.
Edit:
Die Art und Weise, die Auswahl getroffen werden, ist fehlerhaft. Ich habe keine Ahnung von der Absicht des Autors, aber ich vermute, diese Implementierung ist näher an, was ein Benutzer erwarten würde:
function selectGroup(e) {
if (e.target.tagName != 'OPTGROUP') return;
$(this).find('option').each(function (index, item) {
var $item = $(item);
if (!$item.data('filtered1')) {
if (!$item.prop('selected')) {
$item.prop('selected', true);
} else {
$item.removeAttr('selected');
}
}
});
if(e.data.dlb.settings.moveOnSelect) {
move(e.data.dlb);
}
e.preventDefault();
}
Wieder eine ähnliche Änderung unselectGroup
machen. Im ursprünglichen Code war das Problem, dass wenn Sie auf eine einzelne option
klicken, würde der Klick auf die optgroup
, daher die if
Wache Blase. Außerdem sollte der Auswahlstatus nicht direkt geändert werden. Dies wird bereits in der move
Funktion behandelt. Es ist viel netter, das selected
Attribut zu ändern, das die move
Funktion später verdaut. Auf diese Weise wird auch visuell deutlich, was tatsächlich ausgewählt wird. Wenn Sie also auf eine optgroup
klicken, sollte diese Option bei allen Elementeigenschaften aktiviert werden. Möglicherweise möchten Sie ändern, wie die Entfernung des ausgewählten Attributs erfolgt.
Es ist 'moveOnSelect' nicht' move-on-select'. siehe den Link: http://www.virtuosoft.eu/code/bootstrap-duallistbox/ –
@prakashtank Danke für die Antwort, 'moveOnSelect: false' ist auf der Skriptseite erwähnt werden, ich habe das bereits zu false in das 'jquery.dlbx.js', immer noch hat es nicht funktioniert. 'move-on-select'ist winklig Direktive –