在 selectize.js 后停止传播

Stop prograpagation in selectize.js

我花了一个小时试图完成此 jsfiddle splendid selectize modification to stop close (stopPropagation) on option selection , but I am now feeling helpless. Do I have to use some of selectize option for this ? I've read the doc,但没有发现任何相关内容。唯一相关的选项似乎是 closeAfterSelect,但其默认值为 false :( 有什么想法吗?

$('.dropdown').each(function() {
    $_self = $(this);
    $_self.find('select')
        .selectize({ plugins: ['component'], maxItems: 1, closeAfterSelect:false })
        .on('change', function() {
            console.log('Changed value to:', $(this).val() )
            $_self.find('span.value').text( $(this).val() )
            if ($(this).val()) {
                $_self.removeClass('open');
            }
        });
    $_self.find('select').on('click', function(e) { e.stopPropagation(); });
    $_self.find('.dropdown-menu').on('click', function(e) { e.stopPropagation(); });
     $_self.find('.dropdown').on('click', function(e) { e.stopPropagation(); })
});

再次澄清 - 我希望下拉菜单仅在我按下插入符号时关闭。如果我选择任何选项,我希望它保持打开状态。您可能会注意到,我已经在每个 class 和可能的元素上添加了 stopPropagation 方法,但无法使其按预期工作

问题是,e.stopPropagation() 执行得太早,因此不会执行任何操作。但是您可以 return false 更改事件:

http://jsfiddle.net/MattDiMu/ozmqek7b/1/