如何阻止mousedown事件触发外部元素?

时间:2015-10-30 19:17:06

标签: javascript html css angularjs

我已经实现了角度为https://docs.angularjs.org/guide/directive提供的Angular draggable指令。它基本上只是在mousedown事件上放置一个事件监听器并将位置移动到mouseup事件。

<div class="draggable">
  <input type="text"></input>
</div>

当您尝试突出显示输入中的文本时,会出现问题。 div捕获事件并认为mousedown正在发出拖动动作的信号,而不是突出显示输入中的文本。

当用户在输入元素中丢失时,如何阻止mousedown事件触发div mousedown事件?

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找的是event.stopPropogation

https://api.jquery.com/event.stoppropagation/

  

阻止事件冒泡DOM树,防止任何父处理程序收到事件通知。

我看到你提到了Angular。你可以尝试这样的事情。

.directive('myDirective', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            element.bind(mouseover, function (event) {
                event.stopPropagation();
            });
        };
     });