Ich habe dieses einfache eckige Beispiel, wo ich eine Mausklick für eine benutzerdefinierte Aktion erfassen möchte. Das Standardkontextmenü darf nicht angezeigt werden. Ich habe die Fragen hier bei SO gelesen. Leider kann ich es nicht davon abhalten, das im Browser eingebaute Kontextmenü zu öffnen. Ich bin mir sicher, dass mir hier etwas Einfaches fehlt. (Siehe Plunker http://plnkr.co/edit/YieQh23xNUFmPrjZscGB)preventDefault stoppt die Standardmaushandlng nicht
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>My Plunk</title>
<script data-require="[email protected]" data-semver="2.2.0" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="plunker" ng-controller="myController">
<p ng-mousedown="mouseClicked($event)">Click me!</p>
</body>
</html>
script.js
var app = angular.module('plunker', []);
app.controller('myController', ['$scope', '$log', function($scope, $log) {
$scope.mouseClicked = function(event) {
if (event.button===2) {
$log.debug('right mouse click detected')
// don't do anything else
event.preventDefault();
event.stopPropagation();
}
};
}]);
funktioniert perfekt! Upate Plunker http://plnr.co/edit/YieQh23xNUFmPrjZscGB – BetaRide