Bootstrap-multiselect: Reiniciar evento

Criado em 9 jun. 2018  ·  8Comentários  ·  Fonte: davidstutz/bootstrap-multiselect

Parece que o botão de reset não aciona nenhum evento especial. Não deveria haver onReset manipulador de eventos ou pelo menos onDeselectAll acionado?

Comentários muito úteis

para evento acionador em cada seleção múltipla

adicionar

function Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }

`` ``
Multiselect.prototype = {
padrões: {
...

 /**
  * Triggered on Reset.
 */
 onReset: function() {

 },

....

}
}
`` ``

buildReset: function() { ... $('a', $resetButton).click($.proxy(function(){ this.clearSelection(); this.options.onReset(); }, this)); ... }

E em sua instância multisseleção:

$('#mySelect').multiselect({ .... onReset: function() { console.log('onReset clicked!'); } ... })

Todos 8 comentários

Oi
Você encontrou uma solução ?

Sim, mas não é bonito ( JSFiddle ):

function changeHandler($select) {
    var $selected_options = $select.find('option:selected')

    // and so on
}

$('select').multiselect(
    {
        includeResetOption: true,
        onChange: function () {
            changeHandler(this.$select)
        }
    }
)

$('.multiselect-reset')
    .on(
        'click',
        function () {
            changeHandler(
                $(this).closest('.multiselect-native-select').find('select')
            );
        }
    );

Muito obrigado

$('.multiselect-reset').on('click', function () { alert('reset'); });

Tenha um bom dia.
Christophe da França

como conectar o evento à lista suspensa de seleção múltipla específica no caso de haver mais de um?

Tentei com id e nome de classe, mas não funcionou.

para evento acionador em cada seleção múltipla

adicionar

function Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }

`` ``
Multiselect.prototype = {
padrões: {
...

 /**
  * Triggered on Reset.
 */
 onReset: function() {

 },

....

}
}
`` ``

buildReset: function() { ... $('a', $resetButton).click($.proxy(function(){ this.clearSelection(); this.options.onReset(); }, this)); ... }

E em sua instância multisseleção:

$('#mySelect').multiselect({ .... onReset: function() { console.log('onReset clicked!'); } ... })

Olá @denniscastro, muito obrigado pela sua solução. funciona perfeitamente com vários menus suspensos.

para evento acionador em cada seleção múltipla
adicionar

function Multiselect(select, options) {
  ...
  this.options.onReset = $.proxy(this.options.onReset, this);
  ...
}

`` `
Multiselect.prototype = {
padrões: {
...
/ **
* Disparado na reinicialização.
* /
onReset: function () {
},
....
}
}


buildReset: function () {
...
$ ('a', $ resetButton) .click ($. proxy (function () {
this.clearSelection ();
this.options.onReset ();
}, isto));
...
}

And in your multi-select instance:

$ ('# mySelect'). multiselect ({
....
onReset: function () {
console.log ('onReset clicado!');
}
...
})
`` `

Obrigado pela sua solução, mas não tenho certeza de como implementá-la .. ou para onde vão todas essas partes. O que são "...." no código?

Abaixo está todo o código que tenho para uma lista suspensa de seleção múltipla, que é a última parte do seu exemplo. Não sei onde colocar as outras peças. Desde já, obrigado.

$('#kwh,#year').multiselect({
 includeResetOption: true,
 onDropdownHide: function(option, checked, select) {
     <do stuff>
    }
 },
  onChange: function(option, checked, select) {
             <do stuff>
       }
});

@HankLloydRight
Você terá que modificar o próprio bootstrap-multiselect.js.
Em seguida, você faz referência a esse em sua página html.

Esta página foi útil?
0 / 5 - 0 avaliações