AngularJS - 在 Chrome 中选择文本触发父级中的 ng-click

Posted

技术标签:

【中文标题】AngularJS - 在 Chrome 中选择文本触发父级中的 ng-click【英文标题】:AngularJS - Selection of text triggers ng-click in parent in Chrome 【发布时间】:2020-03-21 13:40:34 【问题描述】:

我遇到了一个问题,我目前没有合适的解决方案:

具有输入字段,选择文本和鼠标光标移动到输入字段之外时,在释放鼠标按钮时,父级上的NG-Click-infif会被触发。这似乎是有道理的,因为 mouseup 被触发了,但这不是我想要的行为。

但是,这只发生在 Chrome 浏览器中,在 Firefox 中,我无法重现此问题。

这里有一个简单的 plunker 来演示:

https://next.plnkr.co/edit/tNvKNdDRIE9CUqlk?preview

只需尝试标记文本并将鼠标移到输入字段之外。

预期行为:背景保持灰色。 实际行为: 背景变为绿色,表明背景中的 ng-click 已经发生了。

我该如何解决这个问题?

【问题讨论】:

之前有同样的问题,在这里我找到了答案:***.com/questions/28010244/… 不,这部分是相同的问题,我描述的相同行为实际上发生在接受的答案中:jsfiddle.net/pxh85mg8 在下面,如果您标记文本并按住 + 将鼠标移出区域到白色区域(红色边框之外),然后释放鼠标时仍会显示警报。 【参考方案1】:

A working Plnkr

我正在保存最后一个“mousedown”元素 - 然后决定是否启动背景颜色更改(“$scope.active”)

【讨论】:

以上是关于AngularJS - 在 Chrome 中选择文本触发父级中的 ng-click的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs使用选项从模板添加值创建文本区域

更改由AngularJs从Chrome内容脚本动态创建的包装选择的值

使用 AngularJS 在表单提交时将选择字段重新设置为默认值

扣文转文方法

JavaScript:在 Chrome 中使用 textarea.setSelectionRange 后滚动到选择

Angular JS 适用于 Chrome,但不适用于 IE 11