Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs-mousedown&;鼠标按下事件时在元素上移动?_Javascript_Angularjs - Fatal编程技术网

Javascript angularjs-mousedown&;鼠标按下事件时在元素上移动?

Javascript angularjs-mousedown&;鼠标按下事件时在元素上移动?,javascript,angularjs,Javascript,Angularjs,为了解释我正在尝试做什么,我创建了一个示例,您可以在其中玩: 我想在鼠标按下时将多个瓷砖画成绿色。 这: 仅当鼠标落在图元上而非外部时才起作用 有没有办法检查鼠标是否已经放下并将瓷砖画成绿色 请使用我编写的代码创建一个工作示例 对于mouseup和mousemove,您必须包含更多的事件处理程序,如下所示 <div class="tile" ng-repeat="x in y track by $index" ng-class="x" ng-mouseup="removeFlag()

为了解释我正在尝试做什么,我创建了一个示例,您可以在其中玩:

我想在鼠标按下时将多个瓷砖画成绿色。 这:


仅当鼠标落在图元上而非外部时才起作用

有没有办法检查鼠标是否已经放下并将瓷砖画成绿色


请使用我编写的代码创建一个工作示例

对于mouseup和mousemove,您必须包含更多的事件处理程序,如下所示

<div class="tile" ng-repeat="x in y track by $index" ng-class="x" ng-mouseup="removeFlag()" ng-mousedown="setFlag($parent.$index,$index)" ng-mousemove="drawImage($parent.$index,$index)"></div>
这将在鼠标按下时设置标志,并在光标移动到元素上且鼠标按下时设置颜色


不要使用angular
NGAngular
。编写自定义指令来处理onmouseover、onmousedown等事件。@dfsq您能创建一个工作示例吗?这也是我在瓷砖外发生mousedown之前的想法。所以当我移动鼠标时,它会变成绿色。你是close@Ismail-你的意思是像这样->@adeno仍然很接近哈哈,当你离开身体(向下140像素)并使用鼠标时,它仍然不起作用。使用jquery,您可以将它附加到文档中,这可能会修复它。您可以将事件处理程序附加到文档中,但不确定它是否会有多大帮助->
<div class="tile" ng-repeat="x in y track by $index" ng-class="x" ng-mouseup="removeFlag()" ng-mousedown="setFlag($parent.$index,$index)" ng-mousemove="drawImage($parent.$index,$index)"></div>
$scope.drawImage = function(y,x){
  if ($scope.mouseIsDown)
    $scope.map[y][x] = "green";
}

$scope.setFlag = function(y,x){
   $scope.mouseIsDown = true;
   this.drawImage(y,x)
}

$scope.removeFlag = function(){
   $scope.mouseIsDown = false;
}