AngularJS:点击并选择文字

时间:2015-11-10 12:41:17

标签: javascript jquery html angularjs

在我的应用程序中,我在点击元素后使用了一些逻辑。

例如:

HTML

S

JS

<h3 ng-click="showAlert('text')">this is text! (try to click and select)</h3>

当我点击元素时:一切正常。一切都按预期完成。

但是!

为什么,当我尝试选择文字时,我的活动也会被解雇?

如何跳过选择事件?

enter image description here

plunker:click

1 个答案:

答案 0 :(得分:4)

您可以在mousedownmouseup之间获得时间,以确定是单击还是正在选择文字。

像这样: Demo

(function(){
  angular.module("app", []);

  angular.module("app")
  .directive("noclick", function(){
    return {
      restrict: "A",
      link: function(scope, element, attr){
        scope.time= Date.now();

        element.on("mousedown mouseup", function(e){
          if(e.type == "mousedown"){
            scope.time= Date.now();
          }

          if(e.type == "mouseup"){
            if(Date.now() - scope.time> 300){
              return false;
            }else{
              console.log("clicked");
            }
          }
        });
      }
    }
  });
})(window, angular);

注意:我在这种情况下使用指令。