javascript - 在 selectize.js 中停止传播

标签 javascript jquery selectize.js

我花了一个小时尝试做这个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:

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

关于javascript - 在 selectize.js 中停止传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658921/

相关文章:

php - jQuery AJAX 请求因 PHP 异常而失败

jquery - 使用 jQuery 在设定时间后更改文本颜色,并无限重复

r - 具有特征 "remove all-at-once"的 Shiny selectizeInput

javascript - 尝试打印对象时调用 toString

javascript - 如何在等待函数结束的Javascript中创建加载器?

javascript - 是否可以在发送前更改表单数据?

javascript - 在 selectize.js 单项选择中输入 3 个字符后开始搜索

javascript - 我们如何为 ex_date(ddsf#dsd) 编写正则表达式?

javascript - Javascript 是否会为未处理/未捕获的异常触发事件?

javascript - 选择 - 加载时选择第二个选项