Select2移除标签按钮stopPropagation与preventDefault失效问题求助
解决Select2点击移除图标时下拉菜单关闭的问题
你的代码无效的核心原因是事件类型选择错误:Select2的下拉菜单关闭逻辑是在mousedown阶段触发的,而你绑定的是mouseup事件,此时下拉关闭的逻辑已经执行完毕了。
同时注意修正选择器的小问题:$("document")改为$(document)(虽然不影响功能,但这是规范写法)。
修改后的代码如下:
$(document).ready(function () { $(document).on( "mousedown", ".select2-selection__choice__remove", function (event) { event.stopPropagation(); } ); });
关键说明:
- 使用
mousedown事件:在Select2处理下拉关闭的逻辑之前拦截事件,阻止其冒泡到父元素,避免触发下拉菜单关闭的行为。 - 移除
event.preventDefault():我们需要保留点击“x”图标删除选中项的默认行为,只需要阻止事件冒泡即可。
这样调整后,点击选中项的移除图标时,只会删除对应的选中项,下拉菜单会保持展开状态。
内容的提问来源于stack exchange,提问作者neves
相关产品推荐
相关产品推荐

