【发布时间】:2017-03-08 17:50:11
【问题描述】:
好的,我一直在尝试解决这个问题。在达到这一点之前,我有过帮助,当您单击并拖动展开的 optgroup 下的选择时,我试图解决一个问题,它会折叠 optgroup。我一直在尝试在控制器中运行 jquery 类事件以防止这种情况发生,不幸的是没有发生任何事情。我什至尝试在单击检查父/子的选项时调用一个函数,但我认为我遗漏了一些东西。现在这里是当前工作的 plnkr:Plnkr
我想知道这是否是一个已知问题,如果是,是否有更好的解决方法?这是我第一次使用 stopPropagation,所以我很可能没有正确使用它。当您单独选择一个选项或按住 ctrl/shift 并选择时,stopPropagation 起作用。如果您单击并拖动传递标签或传递选项的底部,它们不会折叠,但如果您单击并拖动并停止选项,则会折叠。
以下是我试图解释的 GIF:
HTML:
<head>
<script data-require="angular.js@1.4.1" data-semver="1.4.1" src="https://code.angularjs.org/1.4.1/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="MainCtrl">
<select multiple class="box">
<optgroup ng-click="value.expanded = !value.expanded" ng-repeat="(key,value) in data" label="{{value.label}}">
<option ng-click="$event.stopPropagation()" ng-if="value.expanded" ng-repeat="id in value.ids">{{id}}</option>
</optgroup>
</select>
</body>
</html>
其余的都在 plnkr 中
【问题讨论】:
-
我忘了包括我的实际问题,刚刚更新了它
-
你能创建一个关于发生了什么的动画 gif 吗?我找不到你。
-
希望能帮上忙哈哈,我尽量用文字解释,但视觉解释通常效果最好
标签: javascript jquery html angularjs