Bootstrap-multiselect: 重置事件

创建于 2018-06-09  ·  8评论  ·  资料来源: davidstutz/bootstrap-multiselect

似乎重置按钮不会触发任何特殊事件。 不应该有onReset事件处理程序或至少onDeselectAll触发吗?

最有用的评论

用于每个多选的触发事件

添加

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

````
Multiselect.prototype = {
默认值:{
...

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

 },

....

}
}
````

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

在您的多选实例中:

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

所有8条评论

你好
你找到解决办法了吗?

是的,但它并不漂亮( 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')
            );
        }
    );

非常感谢

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

祝你今天过得愉快。
Christophe(来自法国)

如果事件不止一个,如何将事件挂钩到特定的多选下拉列表?

我尝试使用 id 和类名,但它不起作用。

用于每个多选的触发事件

添加

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

````
Multiselect.prototype = {
默认值:{
...

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

 },

....

}
}
````

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

在您的多选实例中:

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

@denniscastro非常感谢您的解决方案。 与多个下拉菜单完美配合。

用于每个多选的触发事件
添加

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

``
Multiselect.prototype = {
默认值:{
...
/**
* 复位时触发。
*/
复位:函数(){
},
....
}
}


构建重置:函数(){
...
$('a', $resetButton).click($.proxy(function(){
this.clearSelection();
this.options.onReset();
}, 这个));
...
}

And in your multi-select instance:

$('#mySelect').multiselect({
....
复位:函数(){
console.log('onReset clicked!');
}
...
})
``

感谢您的解决方案,但我不知道如何实现它......或所有这些部分的去向。 代码中的“....”是什么?

下面是我拥有的多选下拉菜单的所有代码,这是您示例的最后一部分。 我不知道把其他部分放在哪里。 提前致谢。

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

@HankLloydRight
您必须修改 bootstrap-multiselect.js 本身。
然后你在你的 html 页面上引用那个。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

andriijas picture andriijas  ·  8评论

APM3 picture APM3  ·  3评论

zeyabadar picture zeyabadar  ·  5评论

bartclaeys picture bartclaeys  ·  3评论

Calaelen picture Calaelen  ·  9评论