我花了一个小时尝试做这个jsfiddle splendid selectize modification停止关闭(stopPropagation)选项选择,但我现在感到无助。我必须为此使用一些 selectize 选项吗?我读过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(); })
});
再次澄清 - 我希望只有在按下插入符号时才能关闭下拉菜单。如果我选择任何选项,我希望它保持开放。您可能会注意到,我已经在每个可能的类和元素上添加了 stopPropagation 方法,但无法使其按预期工作
最佳答案
问题是,e.stopPropagation() 执行得太早,因此不会执行任何操作。但是您可以在 on-change-event 中返回 false
:
关于javascript - 在 selectize.js 中停止传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658921/