stopPropagation 和 PreventDefault 不适用于 select2 删除标签按钮

问题描述 投票:0回答:1

我想防止以下元素上的点击传播:

.select2-selection__choice__remove

我试试这个:

$(document).ready(function () {
  $("document").on(
    "mouseup",
    ".select2-selection__choice__remove",
    function (event) {
      event.stopPropagation();
      event.preventDefault();
    },
  );
});

我要解决的例子是这样的:

https://jsfiddle.net/dk_dragonknight/c1ef7138/

我需要,当单击标签左侧的“x”图标时,下拉列表不会关闭(stopPropagation 需要为此工作)。

注意:这只是我发布的用于重现问题的代码,它不是我的,因此我需要一个解决方案在这里

javascript jquery jquery-select2
1个回答
0
投票

如果您想停止从某个元素传播事件,您需要将事件侦听器绑定到 that 元素。

您当前正在使用事件委托。您已将事件侦听器绑定到文档,并在调用函数之前测试它是否从选择传播到文档。

当您调用 stopPropagation 时,事件已经几乎传播到了预期的范围。

© www.soinside.com 2019 - 2024. All rights reserved.